LeetCode 147. Insertion Sort List插入排序链表的高效简单解法
2016-07-12 10:04
489 查看
Sort a linked list using insertion sort.
ListNode* insertionSortList(ListNode* head) { if (!head||!head->next) return head; ListNode preHead(0),*pre=&preHead; preHead.next=head; ListNode* cur = head; while (cur) { if (cur -> next && cur -> next -> val < cur -> val) { while (pre -> next && pre -> next -> val < cur -> next -> val) pre = pre -> next; /* Insert cur -> next after pre.*/ ListNode* temp = pre -> next; pre -> next = cur -> next; cur -> next = cur -> next -> next; pre -> next -> next = temp; // Move pre back pre = &preHead; } else cur = cur -> next; } return preHead.next; }
相关文章推荐
- 插入排序
- php实现插入排序
- Java数据结构及算法实例:插入排序 Insertion Sort
- javascript数据结构之双链表插入排序实例详解
- c++几种基本的插入排序(图文)
- Java排序算法总结之插入排序
- JAVA算法起步之插入排序实例
- 详解直接插入排序算法与相关的Java版代码实现
- java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)
- python插入排序算法的实现代码
- Python中使用插入排序算法的简单分析与代码示例
- js算法: inserting sort 插入排序
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- Python中使用插入排序算法的简单分析与代码示例
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number