25.H K 个一组翻转链表
思路
Code
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseKGroup(head *ListNode, k int) *ListNode {
len := 0
p := head
for p != nil {
len++
p = p.Next
}
// 加上等于0的情况,是为了避免空指针
if len == 0 || len < k {
return head
}
var newHead *ListNode
cur := head
for i := 0; i < k; i++ {
next := cur.Next
cur.Next = newHead
newHead = cur
cur = next
}
head.Next = reverseKGroup(cur, k)
return newHead
}Last updated