Skip to content

Instantly share code, notes, and snippets.

@ibreathebsb
Created October 5, 2018 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ibreathebsb/d3113204e22d3f1ada7f076c97ff7f41 to your computer and use it in GitHub Desktop.
Save ibreathebsb/d3113204e22d3f1ada7f076c97ff7f41 to your computer and use it in GitHub Desktop.
Leetcode 25. Reverse Nodes in k-Group
func reverseKGroup(head *ListNode, k int) *ListNode {
if nil == head || k <= 1 {
return head
}
dummy := &ListNode{-1, head}
stack := make([]*ListNode, k)
pointer := 0
start, last := head, dummy
for nil != start {
stack[pointer] = start
pointer++
start = start.Next
if pointer == k {
for pointer > 0 {
last.Next = stack[pointer-1]
last = last.Next
pointer--
}
}
}
for i := 0; i < pointer; i++ {
last.Next = stack[i]
last = last.Next
}
last.Next = nil
return dummy.Next
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment