对链表进行直接插入排序但是出现time limit exceeds的有关问题
对链表进行直接插入排序但是出现time limit exceeds的问题
对链表进行直接插入排序但是出现time limit exceeds的问题,比如当链表值为{1,1}时,请问哪边除了错
------解决方案--------------------
囧,leetcode吧,感觉推荐你自己找出原因,这样自己收获更多,我觉得我是废话。。。找个例子跑一下不就可以嘛
------解决方案--------------------
楼主,要多多锻炼大脑的裸机能力啊
对链表进行直接插入排序但是出现time limit exceeds的问题,比如当链表值为{1,1}时,请问哪边除了错
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *insertionSortList(ListNode *head) {
if(!head||!head->next) return head;//注意点1
ListNode *InsertNode=head->next;
ListNode *pre=head,*pNode=head;
while(InsertNode!=NULL){
while(!pNode&&pNode->val<=InsertNode->val)//找到第一个要插入的节点大pNode
{
pre=pNode;
pNode=pNode->next;
}
if(pNode==NULL) return head;
// if(pNode==NULL) goto label;
ListNode *Insert_Next=InsertNode->next;//保存要插入数据的下一个节点
//注意点2
if(pNode==head)//如果比头结点小,即插入到头前面
{
InsertNode->next=head;
head=InsertNode;
InsertNode=Insert_Next;
}
else //插入节点
{
InsertNode->next=pNode;
pre->next=InsertNode;
InsertNode=Insert_Next;
}
}
return head;
}
};
------解决方案--------------------
囧,leetcode吧,感觉推荐你自己找出原因,这样自己收获更多,我觉得我是废话。。。找个例子跑一下不就可以嘛
------解决方案--------------------
楼主,要多多锻炼大脑的裸机能力啊