File tree Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Expand file tree Collapse file tree 1 file changed +71
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+ 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.
3+
4+ You should preserve the original relative order of the nodes in each of the two partitions.
5+
6+ Example:
7+
8+ Input: head = 1->4->3->2->5->2, x = 3
9+ Output: 1->2->2->4->3->5
10+
11+ 无脑怼。
12+
13+ beat:
14+ 99%.
15+
16+ 测试地址:
17+ https://leetcode.com/problems/partition-list/description/
18+ """
19+ # Definition for singly-linked list.
20+ # class ListNode(object):
21+ # def __init__(self, x):
22+ # self.val = x
23+ # self.next = None
24+
25+ class Solution (object ):
26+ def partition (self , head , x ):
27+ """
28+ :type head: ListNode
29+ :type x: int
30+ :rtype: ListNode
31+ """
32+
33+ all_nodes = []
34+
35+ while head :
36+ all_nodes .append (head .val )
37+ head = head .next
38+
39+ less_nodes = []
40+ greater_nodes = []
41+
42+ for i in all_nodes :
43+ if i < x :
44+ less_nodes .append (i )
45+ else :
46+ greater_nodes .append (i )
47+
48+ if less_nodes :
49+ less_head = ListNode (less_nodes [0 ])
50+
51+ head = less_head if less_nodes else None
52+
53+ for i in less_nodes [1 :]:
54+ less_head .next = ListNode (i )
55+ less_head = less_head .next
56+
57+ if greater_nodes :
58+ greater_head = ListNode (greater_nodes [0 ])
59+
60+ _head = greater_head if greater_nodes else None
61+
62+ for i in greater_nodes [1 :]:
63+ greater_head .next = ListNode (i )
64+ greater_head = greater_head .next
65+
66+ if head :
67+ less_head .next = _head
68+
69+ return head
70+ return _head
71+
You can’t perform that action at this time.
0 commit comments