(self, head: Optional[ListNode], x: int)
| 1 | class Solution: |
| 2 | def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]: |
| 3 | less_head, bigger_head = ListNode(-1), ListNode(-1) |
| 4 | less_prev, bigger_prev = less_head, bigger_head |
| 5 | while head: |
| 6 | if head.val < x: |
| 7 | less_prev.next = head |
| 8 | less_prev = less_prev.next |
| 9 | else: |
| 10 | bigger_prev.next = head |
| 11 | bigger_prev = bigger_prev.next |
| 12 | |
| 13 | head = head.next |
| 14 | |
| 15 | less_prev.next = bigger_prev.next = None |
| 16 | less_prev.next = bigger_head.next |
| 17 | |
| 18 | return less_head.next |