题解 | #牛群旋转#
牛群旋转
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 }