题解 | #牛群旋转#
牛群旋转
https://www.nowcoder.com/practice/5137e606573843e5bf4d8ea0d8ade7f4
知识点:
模拟
解题思路:
先遍历链表算出长度,在让k模上len算出实际移动的长度k。从后截取k长度的链表,在拼上前段链表即可
语言:
Golang
package main
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param k int整型
* @return ListNode类
*/
func rotateLeft( head *ListNode , k int ) *ListNode {
// write code here
len:=0
cur:=head
tail:=cur
for cur!=nil{
len++
tail =cur
cur=cur.Next
}
k=k%len
newHead:=&ListNode{}
cur = head
for i:=0;i<len - k-1;i++{
cur =cur.Next
}
newHead.Next =cur.Next
cur.Next =nil
tail.Next = head
return newHead.Next
}