leetcode

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
}
上一篇下一篇

猜你喜欢

热点阅读