![](https://img-blog.csdnimg.cn/20210104144743369.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zNzcyNDUyOQ==,size_16,color_FFFFFF,t_70)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def partition(self, head: ListNode, x: int) -> ListNode:
dummmy1 = ListNode(0)
dummmy2 = ListNode(0)
small = dummmy1
large = dummmy2
while head:
if head.val<x:
small.next = head
small = small.next
else:
large.next = head
large = large.next
head = head.next
large.next = None
small.next = dummmy2.next
return dummmy1.next
- 利用两个链表分别取存储小于x和大于x的节点
- 然后将大于x那个链表,链接在较小链表的后边
- 然后返回新的链表,也就是分隔之后的链表