lintcode-173-链表插入排序
2024-08-31 05:42:24
173-链表插入排序
用插入排序对链表排序
样例
Given 1->3->2->0->null, return 0->1->2->3->null
标签
排序 链表
思路
先插入一个值为 INT_MIN 的头结点,可以使操作跟简单方便
code
/**
* 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
if (head == NULL) {
return head;
}
ListNode *newHead = new ListNode(INT_MIN);
newHead->next = head;
ListNode *alSort, *noSort, *p, *q;
alSort = newHead->next;
newHead->next = NULL;
while (alSort != NULL) {
p = newHead;
noSort = newHead->next;
while (noSort != NULL && noSort->val <= alSort->val) {
p = noSort;
noSort = noSort->next;
}
q = alSort->next;
alSort->next = p->next;
p->next = alSort;
alSort = q;
}
return newHead->next;
}
};
最新文章
- ES6 - Note5:Promise
- Uvaoj 10048 - Audiophobia(Floyd算法变形)
- VS上利用C#实现一个简单的串口程序记录
- Thinkphp 3.2 添加 验证码 如何添加。
- hdu4417 划分树+二分
- 解读Cardinality Estimation<;基数估计>;算法(第一部分:基本概念)
- 《转载》两个activity界面间跳转切换动画效果
- Css四种样式
- [C入门 - 游戏编程系列] 序言篇
- 面试前的准备---C#知识点回顾----03
- Map集合概述和特点
- windows系统下使用cd命令
- [Codeforces]813F Bipartite Checking
- navicat for mysql 破解方法
- [Swift]LeetCode348. 设计井字棋游戏 $ Design Tic-Tac-Toe
- HTTP常见错误返回状态代码
- Vue学习(一)Vue目录结构
- linux基本介绍
- 【PyQt5-Qt Designer】猜数字(小项目)
- Linux未安装上传下载的插件,怎么进行文件的上传下载