题解 | #牛群旋转#

牛群旋转

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
}

全部评论

相关推荐

点赞 评论 收藏
分享
06-25 09:33
厦门大学 Java
球球别拷打俺了:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务