题解 | #链表中的节点每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 }