旋转链表
解题思路一
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func rotateRight(head *ListNode, k int) *ListNode {
if k==0||head == nil || head.Next == nil {
return head
}
listHead := make([]*ListNode, 0)
l := head
for ; l != nil; l = l.Next {
listHead = append(listHead, l)
}
length := len(listHead)
k = k % length
if k == 0 {
return head
}
listHead = append(listHead[length-k:], listHead[:length-k+1]...)
listHead[k-1].Next = listHead[k]
listHead[length-1].Next = nil
return listHead[0]
}复杂度分析一
解题思路二
复杂度分析二
最后更新于