链表插入排序-LintCode
2017-08-18 18:35
162 查看
用插入排序对链表排序
样例
Given 1->3->2->0->null, return 0->1->2->3->null
样例
Given 1->3->2->0->null, return 0->1->2->3->null
#ifndef C173_H #define C173_H #include<iostream> using namespace std; class ListNode{ public: int val; ListNode *next; ListNode(int val) { this->val = val; this->next = NULL; } }; class Solution { public: /** * @param head: The first node of linked list. * @return: The head of linked list. */ ListNode *insertionSortList(ListNode *head) { // write your code here if (head == NULL) return NULL; ListNode *p = head; ListNode *node =new ListNode(-1); while (p != NULL) { ListNode *q = node; if (p == head) { node->next = new ListNode(p->val); } else { ListNode *p1 = node->next; while (p1!=NULL) { if (p->val >= p1->val) { if (p1->next == NULL) { p1->next = new ListNode(p->val); break; } else { p1 = p1->next; q = q->next; } } else { ListNode *l = new ListNode(p->val); l->next = q->next; q->next = l; break; } } } p = p->next; } return node->next; } }; #endif
相关文章推荐
- [LintCode] 链表插入排序
- LintCode 链表插入排序
- 链表插入排序 lintcode
- LintCode(E) 链表插入排序
- LintCode 链表插入排序
- Lintcode 173.链表插入排序
- lintcode——链表插入排序
- 链表插入排序-LintCode
- lintcode-链表插入排序
- 【LintCode 简单】173. 链表插入排序
- LintCode-链表插入排序
- LintCode-链表插入排序
- lintcode 173 链表插入排序
- 【lintcode】——链表插入排序-Insertion Sort List
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
- HASH链地址法和链表插入排序
- 链表,创建,删除,插入,反转,排序
- 单链表的基本操作:建立,求长度,输出,排序,插入,删除,逆置
- LeetCode 147. Insertion Sort List插入排序链表的高效简单解法
- lintcode-合并两个排序链表