由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请大牛review一下这个Insertion Sort List的解法
相关主题
谁能帮我看下insertion sort list这道题吗?发个pure storage的interviewstreet题目
leetcode 关于Partition List链表插入排序都写了一个小时,对人生失去信心了。
LeetCode:Partition List 哪位帮我看看, 为什么总是TLE请问大牛们如何提高解决leetcode上面Linkedlist的题的能力?
java 链表里面dummy node 一问?谢谢再问大牛们leetcode上面Linkedlist的题,Reverse Nodes in k-G
请教各位大牛一个K-way merge 的问题Leetcode swap Paris 这个怎么改进?
弱问一个小问题,leetcode 上merge sorted list【我自己写的LinkedList为什么总有错?】
问一个merge K sorted list的时间复杂度请教一道单链表问题
请教大牛: Leetcode partition list: Time Limit Exceeded大牛们帮忙,Rverse Nodes in k-Group
相关话题的讨论汇总
话题: listnode话题: head话题: p2话题: null话题: dummy
进入JobHunting版参与讨论
1 (共1页)
f**********3
发帖数: 295
1
居然破天荒一次通过了... 但是觉得if else用得太多?不够clean,请问可以怎样改进?
public class Solution {
public ListNode insertionSortList(ListNode head) {
if (head == null || head.next ==null) return head;
ListNode p1=head, p2=head.next;
ListNode p3=head, p4=head.next;
while(p2!=null) {
if (p1.val<=p2.val) {
p1 = p1.next;
p2 = p2.next;
} else {
p1.next = p2.next;
if (p2.val p2.next = head;
head = p2;
} else {
p3=head;
p4=head.next;
while ( !(p3.val<=p2.val && p2.val<=p4.val) ) {
p3 = p3.next;
p4 = p4.next;
}
p3.next = p2;
p2.next = p4;
}
p2 = p1.next;
}
}
return head;
}
}
b*********s
发帖数: 115
2
非大牛
我是在最开始加一个dummy head
public class Solution {
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.
ListNode dummy = new ListNode(Integer.MIN_VALUE);
dummy.next = head;
ListNode preNode = dummy;
ListNode curNode = dummy.next;
while (curNode != null) {
ListNode pre = dummy;
ListNode cur = dummy.next;
while (cur.val < curNode.val) {
pre = cur;
cur = cur.next;
}
if (cur != curNode) {
pre.next = curNode;
preNode.next = curNode.next;
curNode.next = cur;
curNode = preNode;
}
preNode = curNode;
curNode = curNode.next;
}
return dummy.next;
}
}
p*********5
发帖数: 8
3
大牛非常的努力啊!
g*********e
发帖数: 14401
4
用了一个dummy node, 记得用完删掉
class Solution {
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(0);
dummy->next=head;
head=head->next;
dummy->next->next=NULL;
while(head) {
ListNode *cur=head;
head=head->next;
ListNode *t=dummy;
while(t->next && t->next->val < cur->val) {
t=t->next;
}
cur->next=t->next;
t->next=cur;
}
ListNode *res=dummy->next;
delete dummy;
return res;
}
};
s*********9
发帖数: 53
5
public class Solution {
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.
ListNode dummy = new ListNode(0);

while(head!=null){
ListNode tmp = head;
ListNode pre = dummy;
while(pre.next!=null && pre.next.val < tmp.val){
pre = pre.next;
}
head = head.next;
tmp.next = pre.next;
pre.next = tmp;

}

return dummy.next;
}
}
A*********c
发帖数: 430
6
code很简洁,学习了

【在 g*********e 的大作中提到】
: 用了一个dummy node, 记得用完删掉
: class Solution {
: 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(0);
: dummy->next=head;

1 (共1页)
进入JobHunting版参与讨论
相关主题
大牛们帮忙,Rverse Nodes in k-Group请教各位大牛一个K-way merge 的问题
看不懂这题弱问一个小问题,leetcode 上merge sorted list
明天电面,求建议问一个merge K sorted list的时间复杂度
leetcode上的sorted list to BST请教大牛: Leetcode partition list: Time Limit Exceeded
谁能帮我看下insertion sort list这道题吗?发个pure storage的interviewstreet题目
leetcode 关于Partition List链表插入排序都写了一个小时,对人生失去信心了。
LeetCode:Partition List 哪位帮我看看, 为什么总是TLE请问大牛们如何提高解决leetcode上面Linkedlist的题的能力?
java 链表里面dummy node 一问?谢谢再问大牛们leetcode上面Linkedlist的题,Reverse Nodes in k-G
相关话题的讨论汇总
话题: listnode话题: head话题: p2话题: null话题: dummy