链表- leetcode 147. Insertion Sort List
2017-06-30 16:30
561 查看
原题链接:Insertion Sort List
题解:
/**
* 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) {
/*
Time Complexity:O(N)
Space Complexity:O(1)
*/
if(!head || !head->next)return head;
ListNode *start=head,*tmp=head,*after=NULL;
head=head->next;
start->next=NULL;
while(head){
after=head->next;
while(tmp->next){
if(tmp->val<head->val && tmp->next->val<head->val)tmp=tmp->next;
else break;
}
if(tmp->val>head->val){
head->next=tmp;
start=head;
}
else{
head->next=tmp->next;
tmp->next=head;
}
tmp=start;
head=after;
}
return start;
}
};
题解:
/**
* 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) {
/*
Time Complexity:O(N)
Space Complexity:O(1)
*/
if(!head || !head->next)return head;
ListNode *start=head,*tmp=head,*after=NULL;
head=head->next;
start->next=NULL;
while(head){
after=head->next;
while(tmp->next){
if(tmp->val<head->val && tmp->next->val<head->val)tmp=tmp->next;
else break;
}
if(tmp->val>head->val){
head->next=tmp;
start=head;
}
else{
head->next=tmp->next;
tmp->next=head;
}
tmp=start;
head=after;
}
return start;
}
};
相关文章推荐
- Leetcode刷题记——147. Insertion Sort List(插入排序链表)
- leetcode题解-链表排序算法 147. Insertion Sort List && 148 . Sort List
- leetcode_效率题解_[python/C++]_147. Insertion Sort List(链表插入排序)
- Leetcode 147. Insertion Sort List(链表实现快排)
- LeetCode 147. Insertion Sort List插入排序链表的高效简单解法
- LeetCode-147. Insertion Sort List (JAVA)链表插入排序
- LeetCode 147. Insertion Sort List(插入有序链表)
- leetcode 147. Insertion Sort List-链表插入排序
- 【leetcode 链表 】Insertion Sort List
- [LeetCode]Sort List 链表排序 + Merge Two Sorted List 合并两个有序链表
- 【leetcode】【单链表】【147】Insertion Sort List
- leetcode 147. Insertion Sort List
- [C++]LeetCode: 126 Insertion Sort List (插入排序链表)
- LeetCode | Insertion Sort List(插入法排序链表)
- LeetCode-Sort List 链表排序
- 【leetcode】【单链表】【147】Insertion Sort List
- [C++]LeetCode: 125 Sort List (归并排序链表)
- Leetcode:148_Sort List | O(nlogn)链表排序 | Medium
- LeetCode-Sort List,链表排序(插入和归并),时间复杂度O(n^2) and O(nlgn)
- leetcode——Insertion Sort List 对链表进行插入排序(AC)