题解 | #链表中的节点每k个一组翻转#
链表中的节点每k个一组翻转
https://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param head ListNode类
* @param k int整型
* @return ListNode类
*/
func reverseKGroup(head *ListNode, k int) *ListNode {
// write code here
if head == nil || head.Next == nil || k == 1 {
return head
}
node := new(ListNode)
node.Next = head
total := 0
ptr := node
for ptr.Next != nil {
ptr = ptr.Next
total++
}
count := total / k
pre := node
for i := 0; i < count; i++ {
pHead := pre.Next
for j := 0; j < k-1; j++ {
cur := pHead.Next
pHead.Next = cur.Next
cur.Next = pre.Next
pre.Next = cur
}
pre = pHead
}
return node.Next
}


华为HUAWEI成长空间 647人发布