File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Time Complexity: O(n)
2
+ // Space Complexity: O(1)
3
+
4
+ /* *
5
+ * Definition for singly-linked list.
6
+ * struct ListNode {
7
+ * int val;
8
+ * ListNode *next;
9
+ * ListNode(int x) : val(x), next(NULL) {}
10
+ * };
11
+ */
12
+ class Solution {
13
+ public:
14
+ ListNode *partition (ListNode *head, int x) {
15
+ ListNode left_dummy (-1 );
16
+ ListNode right_dummy (-1 );
17
+ auto left_cur = &left_dummy;
18
+ auto right_cur = &right_dummy;
19
+
20
+ for (auto cur = head; cur; cur = cur->next ) {
21
+ if (cur->val < x) {
22
+ left_cur->next = cur;
23
+ left_cur = cur;
24
+ }
25
+ else {
26
+ right_cur->next = cur;
27
+ right_cur = cur;
28
+ }
29
+ }
30
+
31
+ left_cur->next = right_dummy.next ;
32
+ right_cur->next = nullptr ;
33
+ return left_dummy.next ;
34
+ }
35
+ };
You can’t perform that action at this time.
0 commit comments