LeetCode 147:Insertion Sort List
2016-01-02 23:16
381 查看
Sort a linked list using insertion sort.
//链表插入排序 //对于当前遍历的cur点,判断前面是否可以插入,若可以插入,则当前遍历点cur指向插入点的后一点,插入点的前一点指向cur //然后再将前面已经排好序的链表的最后一个节点,指向cur的下一个节点。 //利用临时变量tmp记录当前遍历节点的下一个节点,以便继续遍历下个节点 class Solution { public: ListNode* insertionSortList(ListNode* head) { ListNode dummy(INT_MIN); ListNode* cur = head; while (cur !=nullptr) { ListNode* pos = findInsertPos(&dummy, cur->val); ListNode* tmp = cur->next; //记录当前遍历节点的下一个节点,以便继续遍历下个节点 cur->next = pos->next; pos->next = cur; cur = tmp; } return dummy.next; } //找到当前遍历点cur的插入位置 ListNode* findInsertPos(ListNode *head, int x){ ListNode* pre=nullptr ; ListNode* cur= head; while (cur !=nullptr && cur->val<=x) { pre = cur; cur = cur->next; } return pre; } };
相关文章推荐
- 【翻译自mos文章】在12c中Create or Truncate Table时很慢,等待事件为 DFS Lock Handle wait
- Exchange2010五个角色的概述(图解)
- 大数加法
- Hibernate之多对多
- 解题报告:POJ_1833 排序
- 本地通知的实现
- Hbase设置Snappy压缩测试
- IO流
- 从头认识java-15.7 Map(5)-介绍HashMap的工作原理-Key变了,能不能get出原来的value?(偶尔作为面试题)
- 我的博客
- 磁力计的基本工作原理
- 【u3d】环境搭建
- 关于开源框架SuperRecyclerView瀑布流卡顿问题
- scrollerView 滚动的时候改变 scrollerView 的背景色代码
- 邮件服务器 Exchange2010视频教程(精品珍藏版)
- LIBSVM学习——文本分类
- IntelliJ IDEA 常用设置讲解
- 学习笔记(二)——直方图均衡化和匹配
- 立体像对DEM提取
- Intent重点小结