File tree Expand file tree Collapse file tree 1 file changed +24
-31
lines changed Expand file tree Collapse file tree 1 file changed +24
-31
lines changed Original file line number Diff line number Diff line change 10
10
*/
11
11
class Solution {
12
12
public ListNode reverseKGroup (ListNode head , int k ) {
13
- if (head == null ) {
14
- return null ;
15
- }
16
- ListNode start = head ;
17
- ListNode curr = head ;
13
+ ListNode newHead = null ;
18
14
ListNode prev = null ;
19
- ListNode revHead = null ;
15
+ ListNode curr = head ;
20
16
while (curr != null ) {
21
- int count = 1 ;
22
- while (curr .next != null && count < k ) {
17
+ ListNode start = curr ;
18
+ int idx = 1 ;
19
+ for (idx = 1 ; idx < k && curr .next != null ; idx ++) {
23
20
curr = curr .next ;
24
- count ++;
25
21
}
26
- if (count == k ) {
27
- ListNode next = curr .next ;
28
- curr .next = null ;
29
- if (revHead == null ) {
30
- revHead = curr ;
31
- }
32
- ListNode reverse = reverse (start );
33
- if (prev != null ) {
34
- prev .next = reverse ;
35
- }
36
- start .next = next ;
37
- prev = start ;
38
- start = next ;
39
- curr = next ;
22
+ if (idx != k ) {
23
+ curr = null ;
24
+ continue ;
40
25
}
41
- else {
42
- curr = curr .next ;
26
+ ListNode next = curr .next ;
27
+ curr .next = null ;
28
+ ListNode reversedNode = reverse (start );
29
+ if (newHead == null ) {
30
+ newHead = reversedNode ;
43
31
}
32
+ if (prev != null ) {
33
+ prev .next = reversedNode ;
34
+ }
35
+ prev = start ;
36
+ start .next = next ;
37
+ curr = next ;
44
38
}
45
- return revHead == null ? head : revHead ;
46
- }
39
+ return newHead ;
40
+ }
47
41
48
- private ListNode reverse (ListNode root ) {
49
- ListNode curr = root ;
50
- ListNode next = null ;
42
+ private ListNode reverse (ListNode node ) {
43
+ ListNode curr = node ;
51
44
ListNode prev = null ;
52
45
while (curr != null ) {
53
- next = curr .next ;
46
+ ListNode next = curr .next ;
54
47
curr .next = prev ;
55
48
prev = curr ;
56
49
curr = next ;
You can’t perform that action at this time.
0 commit comments