题解 | #链表中的节点每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 reverse(start, end *ListNode) *ListNode { var pre *ListNode = nil endNext := end.Next for start != endNext { next := start.Next start.Next = pre pre = start start = next } return pre } func reverseKGroup(head *ListNode, k int) *ListNode { // write code here nHead := &ListNode{Next: head} var next *ListNode = nil sh := nHead eh := nHead for eh != nil { num := 0 for num < k { eh = eh.Next num += 1 if eh == nil { return nHead.Next } } next = eh.Next temh := reverse(sh.Next, eh) sh.Next.Next = next tsh := sh.Next sh.Next = temh sh = tsh eh = sh } return nHead.Next }