小黑做法:硬做
class Solution:
def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
head = ListNode(next = head)
pre_link = head
link = head.next
temp_arr = []
while link:
if link.val >= x:
break
link = link.next
pre_link = pre_link.next
a_link= pre_link.next
if not link:
return head.next
b_link = link.next
arr = []
while b_link:
if b_link.val < x:
arr.append(b_link)
a_link.next = b_link.next
else:
a_link = a_link.next
b_link = b_link.next
link_arr = pre_link
for node in arr:
link_arr.next = node
link_arr = link_arr.next
link_arr.next = link
return head.next
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47

模拟法
class Solution:
def partition(self, head: Optional[ListNode], x: int) -> Optional[ListNode]:
small_head = ListNode()
small = small_head
big_head = ListNode()
big = big_head
while head:
if head.val x:
small.next = head
small = small.next
else:
big.next = head
big = big.next
head = head.next
small.next = big_head.next
big.next = None
return small_head.next
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24

小黑生活
下午要去朝阳公园跑步,喝喜茶!!!
