LeetCode: Partition List
来源:互联网 发布:java培训四个月课程表 编辑:程序博客网 时间:2024/06/06 10:52
题目
https://oj.leetcode.com/problems/partition-list/
分析
新建两个链表,第一个链表存放小于x的数,另一个存放大于等于x的数
从前往后遍历给定链表的每一个元素,并根据大小添加到上面创建的两个链表中。
最后把两个链表连接起来。
代码
class Solution{public:ListNode *partition(ListNode *head, int x){struct ListNode *less = new struct ListNode(0);struct ListNode *equal_or_greater = new struct ListNode(0);struct ListNode *ph, *pl, *pe;ph = head;pl = less;pe = equal_or_greater;//partition list into the two listswhile (ph != NULL){if (ph->val < x){pl->next = ph;pl = pl->next;ph = ph->next;}else{pe->next = ph;pe = pe->next;ph = ph->next;}}//link the two listspl->next = equal_or_greater->next;pe->next = NULL;//delete first node of the two listsstruct ListNode *temp;temp = less;less = less->next;delete temp;delete equal_or_greater;return less;}};
Note
一开始先删除头节点然后再连接两个链表,导致结果出问题了,原因在于删除头节点可能导致一个指针失效。
正确的做法应该是先连接链表再删除头节点。
参考
http://www.cnblogs.com/springfor/p/3862392.html 0 0
- LeetCode: Partition List
- LeetCode Partition List
- LeetCode: Partition List
- [Leetcode] Partition List **
- [Leetcode] Partition List
- [LeetCode] Partition List
- leetcode 81: Partition List
- [Leetcode] Partition List
- leetcode 118: Partition List
- [LeetCode]Partition List
- [leetcode]Partition List
- LeetCode-Partition List
- [leetcode] Partition List
- LeetCode - Partition List
- [LeetCode] Partition List
- LeetCode 86: Partition List
- LeetCode:Partition List
- 【leetcode】Partition List
- lvs、haproxy、nginx 负载均衡的比较分析
- 《R Cookbook》中文笔记
- 工作笔记之杂七杂八
- POJ1006(中国剩余定理+大衍求一术)
- 数据结构之插入排序(直插,折半插,2路插)—参考整理严蔚敏数据结构
- LeetCode: Partition List
- 第十一周 项目5 求一年中第几天
- 设计模式学习之备忘录模式(Memento,行为型模式)(19)
- 行人检测(Pedestrian Detection)小结-Part III(相关论文总结报告)
- Android学习之路
- 二叉搜索树建立、插入、删除、前继节点、后继节点之c++实现
- 杭电ACM1000题
- Android自动测试之Monkey工具
- 软件架构设计 笔记