61. Rotate List.go
2019-03-23 本文已影响0人
AnakinSun
先把链表变成一个环,注意处理超过一圈的情况
func rotateRight(head *ListNode, k int) *ListNode {
if head == nil || head.Next == nil || k == 0 {
return head
}
len := 1
tail := head
for tail.Next != nil {
tail = tail.Next
len++
}
tail.Next = head //变成一个环
k = k % len //因为是个环,所以不用转超过一圈
for i := 0; i < len-k; i++ {
tail = tail.Next
}
head = tail.Next
tail.Next = nil
return head
}