
# 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那个链表,链接在较小链表的后边
- 然后返回新的链表,也就是分隔之后的链表