【Leetcode刷题Python】86.分隔链表
2023-09-14 09:12:58 时间
1 题目
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你不需要 保留 每个分区中各节点的初始相对位置。
2 解析
初始化两个空节点,dummy1和dummy2,分别存储小于x的元素和大于等于x的元素。
遍历链表,将所有小于x的元素链接到dummy1上,将大于等于x的链接到dummy2上,最后给dummy2添加一个null尾巴。再将两条链表dummy1和dummy2合并,形成一条新的链表。
3 Python 代码实现
def partition(self, head: ListNode, x: int) -> ListNode:
dummy1,dummy2 = ListNode(),ListNode()
curr1,curr2,curr = dummy1,dummy2,head
while curr:
if curr.val <x:
curr1.next = curr
curr1 = curr1.next
else :
curr2.next = curr
curr2 = curr2.next
curr = curr.next
curr1.next,curr2.next = dummy2.next,None
# 注意返回是头节点的后一个元素开始的链表
return dummy1.next
相关文章
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- 【转载】Python包管理工具pip与easy_install
- 分析Python中解析构建数据知识
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- paddle 46 使用onnxruntime部署使用paddledetection训练出的旋转框模型(支持batchsize,实现c++与python部署)
- Python IDE之Pydev: 基于Eclipse搭建python的编译环境(Eclipse+pydev)简介、安装、使用技巧方法集合之详细攻略
- Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
- python的未来前景,收集了很多资料总结出来的东西
- 基于蜻蜓优化算法的配电网重构求解(Python代码实现)【IEEE123节点算例】
- Python Flask框架学习23:Flask Sijax
- python下载m3u8视频,调用ffmpeg合并ts成画质无损mp4
- 【LeetCode Python实现】17. 电话号码的字母组合(中等)
- 【LeetCode Python实现】1446. 连续字符(简单)
- Python全栈之路:list列表常用方法
- 小学生蓝桥杯Python闯关 | 纯质数
- 《Fluent Python》读书笔记-2.8
- 【Leetcode刷题Python】23. 合并K个升序链表
- 【Leetcode刷题Python】25.K 个一组翻转链表
- 【Leetcode刷题Python】92.反转链表II
- 【Leetcode刷题Python】56. 合并区间
- 【Leetcode刷题Python】122.买卖股票的最佳时机 II
- 【Leetcode刷题Python】110. 平衡二叉树
- 【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
- 【Leetcode刷题Python】滑雪路径消耗时间:Testing Round #16 (Unrated) C. Skier
- 【Leetcode刷题Python】416. 分割等和子集
- Python下载文件进度条Demo
- 〖Python自动化办公篇⑥〗- word文件自动化 - word操作与读取word文件