File tree Expand file tree Collapse file tree 1 file changed +62
-0
lines changed Expand file tree Collapse file tree 1 file changed +62
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for singly-linked list.
3
+ * function ListNode(val, next) {
4
+ * this.val = (val===undefined ? 0 : val)
5
+ * this.next = (next===undefined ? null : next)
6
+ * }
7
+ */
8
+ /**
9
+ * @param {ListNode } head
10
+ * @param {number } k
11
+ * @return {ListNode }
12
+ */
13
+ var reverseKGroup = function ( head , k ) {
14
+ if ( head === null ) {
15
+ return null ;
16
+ }
17
+
18
+ reverseNextKNodes = ( head ) => {
19
+ let node = head ;
20
+ let arr = [ ] ;
21
+ for ( let i = 0 ; i < k ; i ++ ) {
22
+ if ( node === null ) {
23
+ return head ;
24
+ }
25
+ arr . push ( node ) ;
26
+ node = node . next ;
27
+ }
28
+ let nextHead = arr [ k - 1 ] . next ;
29
+ for ( let i = arr . length - 1 ; i >= 1 ; i -- ) {
30
+ arr [ i ] . next = arr [ i - 1 ] ;
31
+ }
32
+ arr [ 0 ] . next = reverseNextKNodes ( nextHead ) ;
33
+ return arr [ k - 1 ] ;
34
+ } ;
35
+
36
+ return reverseNextKNodes ( head ) ;
37
+ } ;
38
+
39
+ function ListNode ( val , next ) {
40
+ this . val = val === undefined ? 0 : val ;
41
+ this . next = next === undefined ? null : next ;
42
+ }
43
+
44
+ f = new ListNode ( 9 ) ;
45
+ e = new ListNode ( 8 , f ) ;
46
+ d = new ListNode ( 7 , e ) ;
47
+ c = new ListNode ( 6 , d ) ;
48
+ b = new ListNode ( 5 , c ) ;
49
+ a = new ListNode ( 4 , b ) ;
50
+
51
+ printLinkedList = ( head ) => {
52
+ let result = [ ] ;
53
+ let node = head ;
54
+ while ( node !== null ) {
55
+ result . push ( node ) ;
56
+ node = node . next ;
57
+ }
58
+
59
+ console . log ( result ) ;
60
+ } ;
61
+
62
+ printLinkedList ( reverseKGroup ( a , 4 ) ) ;
You can’t perform that action at this time.
0 commit comments