LintCode_096_链表划分
2017-12-06 21:08
417 查看
问题描述
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。
样例
给定链表 1->4->3->2->5->2->null,并且 x=3返回 1->2->2->4->3->5->null
求解
搞两个指针,smaller记录小于x的结点, larger记录不小于x的结点,最后将拆分出来的两个链表拼接,注意larger的next应当赋值nullptr
class Solution { public: ListNode *partition(ListNode *head, int x) { ListNode dummySmaller(0); ListNode dummyLarger(0); auto smaller = &dummySmaller; auto larger = &dummyLarger; while (head) { if (head->val < x) { smaller->next = head; smaller = smaller->next; } else { larger->next = head; larger = larger->next; } head = head->next; } smaller->next = dummyLarger.next; larger->next = nullptr; return dummySmaller.next; } };
相关文章推荐
- LintCode_096_链表划分
- lintcode 96 链表划分
- [LintCode 96] 链表划分(Python)
- lintCode. 96 链表划分
- 96. 链表划分(partition-list)(c++)----lintcode面试题之链表
- python_lintcode_96. 链表划分_389. 判断数独是否合法
- LintCode-链表划分
- LintCode 链表划分
- LintCode : 链表划分
- Lintcode 链表划分
- 【LintCode 简单】96. 链表划分
- LintCode【简单】96. 链表划分。代码及思路
- LintCode 96. 链表划分
- Lintcode 76.链表划分
- 链表划分-LintCode
- [LintCode]96.链表划分
- 174. 删除链表中倒数第n个节点 (remove-nth-node-from-end-of-list)(c++)----lintcode面试题之链表
- LintCode-第168题 链表求和
- Lintcode 删除链表中倒数第k个结点
- 两两交换链表中的节点-LintCode