题目:
代码:
Go
func reverseKGroup(head *ListNode, k int) *ListNode {
cur := head
for i := 0; i < k; i++ {
if cur == nil {
return head
}
cur = cur.Next
}
newHead := reverse(head, cur)
head.Next = reverseKGroup(cur, k)
return newHead
}
func reverse(start, end *ListNode) *ListNode { //翻转
var pre *ListNode
cur := start
for cur != end {
nex := cur.Next
cur.Next = pre
pre = cur
cur = nex
}
return pre
}