35 lines
403 B
Go
35 lines
403 B
Go
package q61
|
|
|
|
type ListNode struct {
|
|
Val int
|
|
Next *ListNode
|
|
}
|
|
|
|
func rotateRight(head *ListNode, k int) *ListNode {
|
|
if head == nil {
|
|
return nil
|
|
}
|
|
n := 1
|
|
p := head
|
|
for p.Next != nil {
|
|
p = p.Next
|
|
n++
|
|
}
|
|
tail := p
|
|
|
|
k %= n
|
|
if k == 0 {
|
|
return head
|
|
}
|
|
|
|
tail.Next = head
|
|
p = head
|
|
for range n - k - 1 {
|
|
p = p.Next
|
|
}
|
|
newHead := p.Next
|
|
p.Next = nil
|
|
return newHead
|
|
}
|
|
|
|
var _ = rotateRight
|