【路飞】leetcode 19 删除链表的倒数第N个节点

129 阅读1分钟

思路: 删除链表的倒序第N个节点,也就是正序第length - n个节点,我们只需要找到正序他的前一个节点把他的指针向后移动一位即可,需要处理一下边界值

var removeNthFromEnd = function(head, n) {
    if (n === 0) {
        return head
    }
    let cur = head
    let len = 1
    while(cur.next){
        cur = cur.next
        len++
    }
    if (len === n) {
        return head.next
    }
    cur = head
    let add = len - n
    while(--add) {
        cur = cur.next
    }
    cur.next = cur.next.next
    return head
};