[LeetCode]Insertion Sort
来源:互联网 发布:中文编程安卓版 编辑:程序博客网 时间:2024/06/07 07:01
Sort a linked list using insertion sort.
这道题是要求用插入排序的方式对单链表进行排序。
先不考虑边界情况:
1. 将第一个结点看做有序区,之后的所有结点看做无序区。
2. 从第二个结点p开始,遍历有序区,知道遇到比结点p值大的结点q,将结点p插入到结点q之前。
3. 重复上述步骤直到链表遍历结束。
需要注意的是:
1. 遍历无序区时,需要保存当前结点的后继结点,以防指针丢失。
2. 若原链表为空,则直接返回NULL。
下面贴上代码:
/** * 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){ ListNode* first = new ListNode(0); first->next = head; if (head){ ListNode* p = head->next; head->next = NULL; while (p){ ListNode* r = p->next; ListNode* q = first; while (q->next&&q->next->val < p->val) q = q->next; p->next = q->next; q->next = p; p = r; } } return first->next; }};
0 0
- Insertion Sort List | leetcode
- Leetcode: Insertion Sort List
- [LeetCode] Insertion Sort List
- Leetcode: Insertion Sort List
- leetcode-Insertion Sort List
- [LeetCode]Insertion Sort List
- 【LeetCode】Insertion Sort List
- LeetCode | Insertion Sort List
- LeetCode - Insertion Sort List
- [LeetCode] Insertion Sort List
- Insertion Sort List (LeetCode)
- [LeetCode] Insertion Sort List
- [LeetCode]Insertion Sort List
- leetcode Insertion Sort List
- Insertion Sort List -- LeetCode
- Insertion Sort List (LeetCode)
- LeetCode Insertion Sort List
- leetcode Insertion Sort List
- BZOJ 2565 最长双回文串 Manacher
- Bandwidth
- 记清华LabmU校园极客社面试
- URAL 1617. Flat Spots(数学啊 )
- Python高级特性:类构造与析构
- [LeetCode]Insertion Sort
- android学习——使用SAX、DOM 和 PULL 解析xml文件,及使用pull生成xml文件
- bom 与 dom
- Object-C中的代理协议Protocol
- 黑马程序员--IOS入学学习--1-C语言基础及UNIX基本指令
- 自己写的虚拟键盘灯小挂件
- leetcode Valid Palindrome
- C++学习笔记(十一):成员访问运算符(点运算和箭头运算)
- Bootstrap-CSS-表单