题解 | #牛群旋转#
牛群旋转
https://www.nowcoder.com/practice/5137e606573843e5bf4d8ea0d8ade7f4
class ListNode { val: number next: ListNode | null constructor(val?: number, next?: ListNode | null) { this.val = (val === undefined ? 0 : val) this.next = (next === undefined ? null : next) } } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ export function rotateLeft(head: ListNode, k: number): ListNode { // write code here let leftNode: ListNode = head let rightNode: ListNode = head let index: number = 0 let length = 0 let countNode = head while (countNode) { countNode = countNode.next length++ } let K = k % length if (K === 0) { return head } while (index < K + 1) { rightNode = rightNode.next index++ } while (rightNode !== null) { leftNode = leftNode.next rightNode = rightNode.next } let dummy = new ListNode(-1) let curr = dummy dummy.next = leftNode.next leftNode.next = null while (curr.next) { curr = curr.next } curr.next = head return dummy.next }