147.对链表进行插入排序
对链表进行插入排序。
插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。
每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。
插入排序算法:
- 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
- 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
- 重复直到所有输入数据插入完为止。
示例 1:
输入: 4->2->1->3 输出: 1->2->3->4
示例 2:
输入: -1->5->3->4->0 输出: -1->0->3->4->5
/**
* 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 *dummy = new ListNode(-1), *cur = dummy;
while (head) {
ListNode *t = head->next;
cur = dummy;
while (cur->next && cur->next->val <= head->val) {
cur = cur->next;
}
head->next = cur->next;
cur->next = head;
head = t;
}
return dummy->next;
}
};
147.对链表进行插入排序相关推荐
- 插入排序 链表 java_Java实现 LeetCode 147 对链表进行插入排序
147. 对链表进行插入排序 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将 ...
- leetcode 147. 对链表进行插入排序
对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插 ...
- LeetCode 147. 对链表进行插入排序(链表)
1. 题目 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的 ...
- 147. 对链表进行插入排序嗯嗯对的
对链表插入排序,可以用两个指针p, q进行往后取结点操作: 开始如果head为空,直接返回NULL即可: 否则,让p指向head,q始终为p的下一个指针,这样每次对p操作后还能更新p为操作前的下一个指 ...
- Leetcode 147. 对链表进行插入排序 解题思路及C++实现
解题思路: 这道题目,如果不借助其它stl工具,只是使用本身的ListNode的话,最主要的一个问题是,每次找插入位置的时候,没有办法进行从后往前回溯,所以只能从head头结点往后比较,然后找出应当插 ...
- python 对链表进行插入排序
对链表进行插入排序 插入排序算法:插入排序是迭代的,每次只移动一个元素, 直到所有元素可以形成一个有序的输出列表. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并 ...
- Leetcode 147.对链表进行排序
对链表进行插入排序 对链表进行插入排序. 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它 ...
- leetcode147 对链表进行插入排序
丢人,我就是按插入排序老老实实写的啊.... 别人肯定map了hhh. 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入 ...
- LeetCode自我总结(对链表进行插入排序)
对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中. 插 ...
- LeetCode-147:对链表进行插入排序
题目描述: 对链表进行插入排序. 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中 ...
最新文章
- 人工智能开放平台建设火热,AI发展未来可期
- VS2013导入opencv320配置属性文件
- SQLMAP注入教程-11种常见SQLMAP使用方法
- 活动社交产品怎么设计排序算法?
- JVM调优总结(二)-一些概念
- Oracle数据库与Access互导实例
- 邮箱服务器ip地址白名单,申请SSL证书时如何设置IP地址白名单和邮箱白名单
- 李彦宏:百度吹过的牛逼今天实现了!
- 光子不维护服务器,光子云和光子服务器
- Python标准库中的zipfile
- 单片机can通信可以接多少个设备_总结BMS上CAN收发器电路的几个要点
- Jboss 中配置 Oracle数据源
- [NAACL19]无监督循环神经网络文法 (URNNG)
- 奥的斯服务器故障显示m什么意思,奥迪斯电梯故障代码对照表 奥的斯电梯故障解决方法...
- 阿里、京东、拼多多都来了,互联网+疫苗是一门好生意吗?
- 销售订单配置项目说明
- PaddleX---MobileNetV3_ssld图像分类
- Chrome with proxy
- python读取、保存图片的方法
- HSL:色相,饱和度,亮度