由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 链表插入排序都写了一个小时,对人生失去信心了。
相关主题
谁能帮我看下insertion sort list这道题吗?两个链表怎么查找相交点?
面试题请大牛review一下这个Insertion Sort List的解法
PURE 储存 OAn个排序链表,如何O(1) space合并成一个
问一道常见面试题,reverse a linked list刷题背后
leetcode上这个链表节点的定义是什么意思?ListNode(int x) : val(x), next(NULL) {}哪里找 c++ 数据结构的好代码?
弱问题,连反转链表都看不懂了leetcode 上单链表转BST那道题求指导
f 的面经约瑟夫问题 用循环链表算法 时间 复杂度多少
java 链表里面dummy node 一问?谢谢怎么返回单链表里面的环的前一个节点的位置?
相关话题的讨论汇总
话题: listnode话题: null话题: head话题: pre话题: next
进入JobHunting版参与讨论
1 (共1页)
s***e
发帖数: 403
1
今天看到leetcode的新题,单链表插入排序,本来准备做一下再吃午饭的。结果楞是写
了一个小时,中间bug无数。
感觉对人生失去信心了。
n****e
发帖数: 678
2
同感啊,觉得面试官从intro to algorithms 里面找一个例题或者一个algorithm出来
让写code, implement一下。 40分钟不一定能搞定啊
x*******8
发帖数: 145
3
我也写了一会儿,主要注意一些细节
J****3
发帖数: 427
4
是啊 一看挺简单 具体写起来不容易bug free哦
f********4
发帖数: 988
5
忘记在一开始的时候让head->next=NULL的飘过..
b********6
发帖数: 97
6
patpat
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)

1 (共1页)
进入JobHunting版参与讨论
相关主题
怎么返回单链表里面的环的前一个节点的位置?leetcode上这个链表节点的定义是什么意思?ListNode(int x) : val(x), next(NULL) {}
单链表构成的循环链表比单链表有什么优势?弱问题,连反转链表都看不懂了
再上一简单点面试题了f 的面经
讨论 找单链表倒数m的节点java 链表里面dummy node 一问?谢谢
谁能帮我看下insertion sort list这道题吗?两个链表怎么查找相交点?
面试题请大牛review一下这个Insertion Sort List的解法
PURE 储存 OAn个排序链表,如何O(1) space合并成一个
问一道常见面试题,reverse a linked list刷题背后
相关话题的讨论汇总
话题: listnode话题: null话题: head话题: pre话题: next