【LeetCode】Partition List
2023-09-14 09:07:59 时间
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given 1->4->3->2->5->2
and x = 3,
return 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) { ListNode *smallhead = NULL; ListNode *bighead = NULL; ListNode *tail_small = NULL; ListNode *tail_big = NULL; ListNode *cur = head; if (head == NULL || head->next == NULL) { return head; } while(cur != NULL) { ListNode *tmp_next = cur->next; if (cur->val < x) { if (smallhead == NULL) { smallhead = tail_small = cur; } else { tail_small->next = cur; tail_small = cur; } } else{ if (bighead == NULL) { bighead = tail_big = cur; } else{ tail_big->next = cur; tail_big = cur; } } cur = tmp_next; } if (tail_small == NULL) { tail_big->next = NULL; return bighead; } if (tail_big == NULL) { tail_small->next = NULL; return smallhead; } tail_small->next = bighead; tail_big->next = NULL; return smallhead; } };
相关文章
- LeetCode每日一题-7:有效的括号
- LeetCode笔记:Weekly Contest 302
- <leetcode刷题-数组> 【动态规划】【贪心算法】买卖股票的最佳时机
- java list去重_JAVA基础-List去重的6种方式[通俗易懂]
- 《三战Leetcode》寻找有序数组的中位数
- leetcode-38外观数列
- 【leetcode速通java版】01——数组入门
- 刷完这19道leetcode二分查找算法,不信进不了大厂
- 前端工程师leetcode算法面试之二分搜索算法(下)
- JavaScript刷LeetCode之模板技巧篇
- 前端工程师leetcode算法面试必备-简单的二叉树
- 前端工程师leetcode算法面试必备-二分搜索算法(下)_2023-03-15
- LeetCode——遍历序列构造二叉树
- list java中List对象通用排序算法详解编程语言
- 结构使用Redis List结构实现快速操作(redis中list)
- 中一部分元素用Redis快速获取List元素(redis获取list)
- Mysql实现List存储的技巧(mysql存储list)
- 的优势玩转Redis:List缓存的有点优势(redis 缓存list)
- 轻松高效:Redis存取List的最佳实践(redis 存取list)
- 利用Redis List实现强大的数据存储(使用redis list)
- 使用XmlSerializer序列化List对象成XML格式(list对象序列化)