LeetCode - 分隔链表题解
题目描述
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。需要保持节点的相对顺序。
解题思路
双指针法
1 | var partition = function(head, x) { |
代码分析
- 创建两个虚拟头节点,分别存储小于x和大于等于x的节点
- 遍历原链表,根据节点值分配到对应链表
- 最后将两个链表连接起来
- 注意处理尾节点的next指针
复杂度分析
- 时间复杂度: O(n)
- 空间复杂度: O(1)
注意事项
- 需要断开大值链表的尾部指针
- 保持节点的相对顺序不变
- 处理好链表为空的边界情况
参考资料
https://johnsmithsren.github.io/renjmBlog.github.io/2020/07/01/%E5%88%86%E9%9A%94%E9%93%BE%E8%A1%A8/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 !


