leetcode Insertion Sort List
2014-04-12 00:17
507 查看
#include <iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; //题目大意:实现链表的插入排序 由于链表是单向的,所以插入检测是从左到右检测插入元素 class Solution { public: ListNode *insertionSortList(ListNode *head) { if(head == NULL || head-> next == NULL) return head; ListNode *iterator = head->next; ListNode *prev = head; ListNode *movement = head; ListNode *temp = NULL; while(iterator != NULL) { if(iterator->val < prev->val) { temp = iterator; prev->next = iterator->next; iterator = iterator->next; if(head->val > temp->val) { temp->next = head; head = temp; continue; } movement = head; while(movement->next->val < temp->val) movement = movement->next; temp->next = movement->next; movement->next = temp; } else { prev = iterator; iterator = iterator->next; } } return head; } }; void print(ListNode * head) { while(head != NULL) { cout << head->val << " "; head = head->next; } cout << endl; } int _tmain(int argc, _TCHAR* argv[]) { ListNode a(3); ListNode b(4); ListNode c(1); a.next = &b; b.next = &c; ListNode *head = &a; Solution s; head = s.insertionSortList(head); print(head); return 0; }
相关文章推荐
- [Leetcode]#147 Insertion Sort List
- Insertion Sort List(leetcode)
- LeetCode-Insertion Sort List-链表插入排序-链表操作
- leetcode InsertionSort list
- [C++]LeetCode: 126 Insertion Sort List (插入排序链表)
- Leetcode Insertion Sort List
- leetcode之Insertion Sort List
- LeetCode-Insertion Sort List[AC源码]
- LeetCode147: Insertion Sort List
- LeetCode-M-Insertion Sort List
- Leetcode---Insertion Sort List
- [LeetCode-Algorithms-147] "Insertion Sort List" (2017.12.21-WEEK16)
- [LeetCode]Insertion Sort List
- LeetCode 147:Insertion Sort List
- leetcode_c++:链表:Insertion Sort List(147)
- Insertion Sort List[LeetCode]
- LeetCode147—Insertion Sort List
- Insertion Sort List -- leetcode
- leetcode. Insertion Sort List
- LeetCode 147 — Insertion Sort List(C++ Java Python)