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 dummy := &ListNode{-1, head} prev := dummy for head != nil { start := head end := head for i := 1; i < k && end != nil; i ++ { end = end.Next } if end == nil { break } next := end.Next for start != end { temp := start.Next start.Next = end.Next end.Next = start start = temp } prev.Next = end prev = head head = next } return dummy.Next }