86. Partition List
Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.
You should preserve the original relative order of the nodes in each of the two partitions.
For example,
Given 1->4->3->2->5->2
and x = 3,
return 1->2->2->4->3->5
.
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]: afake = ListNode() bfake = ListNode() a1 = afake a2 = bfake cur = head while cur: c_next = cur.next cur.next = None if cur.val < x: a1.next = cur a1 = a1.next else: a2.next = cur a2 = a2.next cur = c_next a1.next = bfake.next return afake.next