We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 10a0de1 commit 3f2ebadCopy full SHA for 3f2ebad
reverse_k_group.rb
@@ -0,0 +1,38 @@
1
+# Definition for singly-linked list.
2
+# class ListNode
3
+# attr_accessor :val, :next
4
+# def initialize(val = 0, _next = nil)
5
+# @val = val
6
+# @next = _next
7
+# end
8
9
+
10
+def reverse_k_group(head, k)
11
+ return head if head.nil? || k == 1
12
13
+ dummy = ListNode.new(0)
14
+ dummy.next = head
15
+ prev_group = dummy
16
17
+ while true
18
+ kth = prev_group
19
+ k.times do
20
+ kth = kth.next
21
+ return dummy.next if kth.nil?
22
+ end
23
24
+ group_next = kth.next
25
+ prev, curr = group_next, prev_group.next
26
27
+ while curr != group_next
28
+ temp = curr.next
29
+ curr.next = prev
30
+ prev = curr
31
+ curr = temp
32
33
34
+ temp = prev_group.next
35
+ prev_group.next = kth
36
+ prev_group = temp
37
38
+end
0 commit comments