Sort a linked list using insertion sort.

虽然算法很简单,但是链表操作起来实正是烦啊,特别要注意各种边界条件。

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode *insertionSortList(ListNode *head) {
12          if (head == NULL || head->next == NULL) {
13         return head;
14     }
15     ListNode *h = new ListNode(0);
16     h->next = head;
17     ListNode *p, *q, *tmp;
18     bool flag;
19     for (p = head; p->next != NULL;) {
20         flag = false;
21         for (q = h; q != p; q = q->next) {
22             if (p->next->val < q->next->val) {
23                 tmp = p->next;
24                 p->next = tmp->next;
25                 tmp->next = q->next;
26                 q->next = tmp;
27                 flag = true; break;
28             }
29         }
30         if (!flag) p = p->next;
31     }
32     head = h->next;
33     delete h; h = NULL;
34     return head;
35     }
36 };

转载于:https://www.cnblogs.com/easonliu/p/3639488.html

[Leetcode] Insertion Sort List相关推荐

  1. Leetcode Insertion Sort List

    Sort a linked list using insertion sort. 链表的插入排序,其实有2种特殊情况: 1.插入的值插入到已排序的末尾. 2.插入的值插入到已排序的最前端. 主要设置了 ...

  2. Leetcode | Insertion Sort List | 初出茅庐

    Insertion Sort List Total Accepted: 11143  Total Submissions: 45047 My Submissions Sort a linked lis ...

  3. LeetCode Insertion Sort List(单链表插入排序)

    题意:给出一个未排序好的单链表,用插入排序来实现排序 代码如下: class Solution {public ListNode insertionSortList(ListNode head){if ...

  4. LeetCode 147. Insertion Sort List 链表插入排序 C++/Java

    LeetCode 147. Insertion Sort List 链表插入排序 C++/Java Sort a linked list using insertion sort. A graphic ...

  5. LeetCode 147. Insertion Sort List

    LeetCode 147. Insertion Sort List Solution1:我的答案 有点笨,有点慢 /*** Definition for singly-linked list.* st ...

  6. leetcode day2 -- Sort List Insertion Sort List

    1.Sort List Sort a linked list in O(n log n) time using constant space complexity. 分析:对链表排序不是第一次见,但是 ...

  7. [Leetcode]147. Insertion Sort List

    Sort a linked list using insertion sort. 链表的插入排序 思路,递归到链表尾,然后循环插入: 1 /** 2 * Definition for singly-l ...

  8. 【leetcode】147. Insertion Sort List

    Sort a linked list using insertion sort. 链表的插入排序. 需要创建一个虚拟节点.注意点就是不要节点之间断了. class Solution { public: ...

  9. leetcode之Insertion Sort List

    Sort a linked list using insertion sort. 这道题是用链表做插入排序.虽然之前数据结构中学习了链表的插入删除等,但那些都是最简单的基本操作,只是给出一个节点,直接 ...

最新文章

  1. 实验: VMware使用快照间接备份原始VMDK文件
  2. 你确实应该学习并使用的 10 个 C# 特性
  3. 如何做自己的服务监控?spring boot 1.x服务监控揭秘
  4. kmp oj 亲和串
  5. 关于UIView的autoresizingMask属性的研究
  6. [转]Android中handler机制的原理
  7. 前端学习(778):随机数方法
  8. 201571030128/201571030118《小学四则运算练习软件软件需求说明》结对项目报告
  9. mysql查询男生基本情况_MySQL数据库技术与应用:数据查询
  10. 要重复多少次变成潜意识_新股要申购多少次才能保证一定中签?
  11. 罗永浩婉拒币圈争相邀请:发币我也会 只是没打算做
  12. fast start oracle,Oracle Data Guard快速启动故障切换 - fast-start failover(FSFO)
  13. Angular 7和.NET Core 2.2——全球天气(第3部分)
  14. html里怎么画斜线表头,excel里斜线表头怎么做
  15. 伊甸园日历游戏 飘飘乎居士拯救MM(tyvj 1968 1140)
  16. html登陆没反应,ipad屏幕输入密码没反应
  17. 4G边缘计算工业路由器与传统4G工业路由器的区别
  18. csdn竟然还有这种神器!后悔没有早点知道!超好用的csdn插件,别再犹豫了,赶快入手吧!
  19. 计算机专业大学排名(全168所学校)
  20. 使用Jsoup技术获取`阿里拍卖`中法院拍卖的所有拍卖品

热门文章

  1. 面向对象编程的乐趣(TextBox.Text=)
  2. android app 历史版本,怎么找到App的所有历史版本,以及每次改版的变更点呢?
  3. 下载python会对电脑有什么影响-用户在对Python下载的时候,这些注意事项不能忽视...
  4. python编程从入门到实践课后题答案-《Python编程:从入门到实践》课后习题及答案—第11章...
  5. python详细安装教程 path-Python解释器安装教程以及环境变量配置
  6. python编程软件例子-python面向对象编程实例
  7. python 开发版-Micropython开发板固件烧写教程
  8. python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)
  9. 重庆python培训-重庆Python培训班学完能做什么
  10. python写web难受-用python写脚本此页面上造成web运行速度减慢