活跃农民
积分 655
大米 颗
鳄梨 个
水井 尺
蓝莓 颗
萝卜 根
小米 粒
学分 个
注册时间 2011-3-19
最后登录 1970-1-1
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 dreamhit 于 2014-3-30 15:47 编辑
在本地电脑上运行可以输出正确结果,但是submit后 总是提示 Runtime Error Last executed input:{}。
请问这错误是什么意思,如何改呢 ? 谢谢了 ~
题目:Sort a linked list in O ( n log n ) time using constant space complexity. public class Solution {
public ListNode sortList(ListNode head) {
if(head == null)
return null;
int len = 0;
ListNode curr = head;
while(curr!=null){
curr = curr.next;
len++;
}
return sortList(head, len);
} // end method
ListNode sortList(ListNode head, int len){
if(len==1){
head.next = null;
return head;
}
if(len > 1){
int mid = len/2;
ListNode part1 = head;
ListNode part2 = head;
while(mid!=0){
mid--;
part2 = part2.next;
}
mid =len/2;
ListNode list1 = sortList(part1, mid);
ListNode list2 = sortList(part2, len-mid);
ListNode newlist = merge(list1, list2);
return newlist;
}
return null;
} // end method
// merge two sorted list
ListNode merge(ListNode list1, ListNode list2) {
if (list1 == null)
return list2;
if (list2 == null)
return list1;
ListNode head=null;
if (list1.data < list2.data) {
head = list1;
} else {
head = list2;
list2 = list1;
list1 = head;
}
while (list1.next != null && list2 != null) {
if (list1.next.data <= list2.data) {
list1 = list1.next;
} else {
ListNode tmp = list1.next;
list1.next = list2;
list2 = tmp;
}
}
if (list1.next == null)
list1.next = list2;
return head;
} // end merge
} // end class.
class ListNode{
int data;
ListNode next;
public ListNode(int d){
data = d;
}
}
上一篇:
对于递归的迷惑 下一篇:
想了一下午写出三柱汉诺塔动态规划解法什么水平。。。