61. 旋转链表

49 阅读1分钟

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。


var rotateData = function (head,k){
    if (!head)return null
    //找到链表尾结点,与首相接,获取到头部节点的长度
    let cur = head,size = 1
    while(cur.next)cur = cur.next,size += 1;
    cur.next = head;
    //找到第size-k节点后,断开
    for(let i = 0;i<size-k-k%size;i ++){
        head = head.next;
    }
    cur = head.next;
    head.next = null
    return cur
    
}