s***e 发帖数: 403 | 1 今天看到leetcode的新题,单链表插入排序,本来准备做一下再吃午饭的。结果楞是写
了一个小时,中间bug无数。
感觉对人生失去信心了。 |
n****e 发帖数: 678 | 2 同感啊,觉得面试官从intro to algorithms 里面找一个例题或者一个algorithm出来
让写code, implement一下。 40分钟不一定能搞定啊 |
x*******8 发帖数: 145 | |
J****3 发帖数: 427 | 4 是啊 一看挺简单 具体写起来不容易bug free哦 |
f********4 发帖数: 988 | 5 忘记在一开始的时候让head->next=NULL的飘过.. |
b********6 发帖数: 97 | |
m**********g 发帖数: 153 | 7 多刷刷就有感觉了, 模式熟悉之后,直接套上去。 笨人的想法 :)
羡慕大牛们干什么都是一气哈成。 |
h*********o 发帖数: 230 | 8 同样。。一小时。。。
【在 s***e 的大作中提到】 : 今天看到leetcode的新题,单链表插入排序,本来准备做一下再吃午饭的。结果楞是写 : 了一个小时,中间bug无数。 : 感觉对人生失去信心了。
|
d**********x 发帖数: 4083 | 9 not that hard...
handle all corner cases explicitly... then you are good...
【在 h*********o 的大作中提到】 : 同样。。一小时。。。
|
k******4 发帖数: 94 | 10 貌似加个dummyHead还是挺好写的
ListNode *insertionSortList(ListNode *head) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
ListNode dummyHead(INT_MIN);
ListNode *p = head;
while(p != NULL)
{
ListNode *pre = &dummyHead;
while(pre->next != NULL && pre->next->val < p->val)
pre = pre->next;
ListNode *temp = p->next;
p->next = pre->next;
pre->next = p;
p = temp;
}
return dummyHead.next;
} |
b********6 发帖数: 97 | 11 那我也贴个java的好了
public ListNode insertionSortList(ListNode head) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
if (head == null) return null;
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode i = head;
while (i.next != null) {
int n = i.next.val;
ListNode j = dummy;
while (j!=i&&j.next.val < n){
j = j.next;
}
if (j == i) {
i = i.next;
continue;
}
ListNode pivot = i.next;
i.next = i.next.next;
pivot.next = j.next;
j.next = pivot;
}
return dummy.next;
}
【在 k******4 的大作中提到】 : 貌似加个dummyHead还是挺好写的 : ListNode *insertionSortList(ListNode *head) { : // IMPORTANT: Please reset any member data you declared, as : // the same Solution instance will be reused for each test case. : ListNode dummyHead(INT_MIN); : ListNode *p = head; : while(p != NULL) : { : ListNode *pre = &dummyHead; : while(pre->next != NULL && pre->next->val < p->val)
|