leetcode之Insertion Sort List
2014-05-08 19:58
316 查看
原题如下:
Sort a linked list using insertion sort.
题目要求按照插入排序的方法对链表进行排序,但由于单项链表只能从前往后遍历,所以链表中的插入排序也只能从前往后查找合适的插入位置。为了插入的方便可以新创建一个头结点tHead,指针p和q用来查找插入位置的前后两个节点,指针cur和postCur用来指向当前要插入的节点和要插入节点的下一个节点。
Sort a linked list using insertion sort.
题目要求按照插入排序的方法对链表进行排序,但由于单项链表只能从前往后遍历,所以链表中的插入排序也只能从前往后查找合适的插入位置。为了插入的方便可以新创建一个头结点tHead,指针p和q用来查找插入位置的前后两个节点,指针cur和postCur用来指向当前要插入的节点和要插入节点的下一个节点。
class Solution { public: ListNode *insertionSortList(ListNode *head) { if(head == NULL || head->next == NULL) return head; ListNode *p,*q,*cur,*postCur; ListNode *tHead = new ListNode(0); tHead->next = head; cur = head->next; head->next = NULL; while (cur != NULL) { postCur = cur->next; p = tHead; q = tHead->next; while( q != NULL && cur->val > q->val){ q = q->next; p = p->next; } p->next = cur; cur->next = q; cur = postCur; } head = tHead->next; delete tHead; return head; } };链表的排序和插入等一般不是太难,关键是要认真和细心,另外,越来越发现链表带头结点的好处了。。。
相关文章推荐
- LeetCode ||Insertion Sort List
- leetcode Insertion Sort List
- Insertion Sort List —— LeetCode
- [Leetcode 147, medium] Insertion Sort List
- LeetCode(147) Insertion Sort List
- LeetCode:Insertion Sort List (Java)
- 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 OJ Insertion Sort List
- 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