Leetcode刷题Python86.分隔链表
Posted Better Bench
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python86.分隔链表相关的知识,希望对你有一定的参考价值。
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
2022深度学习开发者峰会
5月20日13:00让我们相聚云端,共襄盛会!
以上是关于Leetcode刷题Python86.分隔链表的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—86. 分隔链表( 链表)—day60
Leetcode练习(Python):链表类:第86题:分隔链表:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点