链表插入排序
2017-03-31 22:57
183 查看
一.题目
用插入排序对链表排序
样例:Given 1->3->2->0->null, return 0->1->2->3->null
二.解题思路
申请一个新链表,先把给定链表的第一个节点插进去,遍历后面的节点,比第一个大的放后面,比第一个小的放前面,往后以此类推,找到合适的位置插进去.
三.实现代码
/**
* Definition of ListNode
* 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
ListNode *p= new ListNode(0);
while (head != NULL) {
ListNode *node = p;
while (node->next != NULL && node->next->val < head->val) {
node = node->next;
}
ListNode *t = head->next;
head->next = node->next;
node->next = head;
head = t;
}
return p->next;
}
};
四.感想
要会借助新链表进行重新排序.
用插入排序对链表排序
样例:Given 1->3->2->0->null, return 0->1->2->3->null
二.解题思路
申请一个新链表,先把给定链表的第一个节点插进去,遍历后面的节点,比第一个大的放后面,比第一个小的放前面,往后以此类推,找到合适的位置插进去.
三.实现代码
/**
* Definition of ListNode
* 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
ListNode *p= new ListNode(0);
while (head != NULL) {
ListNode *node = p;
while (node->next != NULL && node->next->val < head->val) {
node = node->next;
}
ListNode *t = head->next;
head->next = node->next;
node->next = head;
head = t;
}
return p->next;
}
};
四.感想
要会借助新链表进行重新排序.
相关文章推荐
- LintCode-链表插入排序
- 链表插入排序
- 【lintcode】——链表插入排序-Insertion Sort List
- 链表插入排序
- 链表插入排序
- 链表插入排序
- LeetCode-Insertion Sort List-链表插入排序-链表操作
- 最近又动手重写了插入,快速排序,单链表,环状双链表,代码如下
- [Leetcode] insertion sort list 链表插入排序
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 单链表很全的例子,插入,删除,,查找,排序
- 链表:插入,删除,显示,排序
- LeetCode-Sort List,链表排序(插入和归并),时间复杂度O(n^2) and O(nlgn)
- C语言中链表的插入及排序
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 插入排序之链表实现
- 链表插入排序、链表归并排序
- C语言中,链表的创建,插入,删除,遍历,求链表长度,排序等
- 链表插入排序
- [LeetCode]85. Insertion Sort List链表插入排序