LeetCode No.86 Partition List
来源:互联网 发布:怎么在淘宝申请开店 编辑:程序博客网 时间:2024/06/07 05:35
题目:给定一个链表和一个值x,划分链表使得所有小于x的节点出现在所有大于等于x的节点之前,并且保持这些节点的相对顺序不变。
例子:1->4->3->2->5->2 x = 3,则应该返回 1->2->2->4->3->5;
思路:这题既然是要把链表划分为两部分,那么我们不妨创建两个新的头节点,一个链接划分后的链表的前半部分,一个链接划分后的链表的后半部分。然后我们在遍历链表的过程中依次将原链表中的节点与这两个新的头节点链接起来,最后再将这两个子链表对接即可!
代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* partition(ListNode* head, int x) { //左节点用来链接所有小于x的节点 ListNode left = ListNode(0); //右节点用来链接所有大于等于x的节点 ListNode right = ListNode(0); ListNode *l = &left, *r = &right; ListNode *curr = head; while(curr != nullptr) { //使用这个引用可以只用一条语句来修改l或者r //否则需要两个if语句块,不够简洁 ListNode *&t = curr->val < x ? l : r; t->next = curr; t = t->next; curr = curr->next; } //将左右两条链表链接起来 l->next = right.next; r->next = nullptr; return left.next; }};
下面是运行结果:
阅读全文
0 0
- Leetcode NO.86 Partition List
- LeetCode No.86 Partition List
- LeetCode 86: Partition List
- LeetCode 86 Partition List
- [leetcode 86] Partition List
- leetcode-86 Partition List
- [LeetCode 86]Partition List
- leetcode || 86、Partition List
- LeetCode---(86) Partition List
- LeetCode 86 Partition List
- Leetcode[86]-Partition List
- leetcode[86]:Partition List
- Leetcode #86 Partition List
- LeetCode(86) Partition List
- leetcode 86: Partition List
- [Leetcode]#86 Partition List
- leetCode #86 Partition List
- leetcode 86:Partition List
- 67. Add Binary
- Android中的音乐播放
- CSS动画实现轮播图
- Mac环境下MySQL无法启动的处理方法
- Android简易音乐播放器实现代码
- LeetCode No.86 Partition List
- Orleans稍微复杂的例子—互动
- Android--常用控件
- 最小的k个数
- LeetCode 64. Minimum Path Sum(Python)
- Lucene第一天入门
- Android如何实现简单音乐播放器的代码
- Scala基础入门(十 ) Scala for循环使用方法
- 无向图寻找是否存在长度为k的环