题目描述: alt

解题思路alt

和上一道删除链表的倒数第k个节点思路差不多,都要设置快、慢两个指针,只是多设置了一个pre来保存慢指针前面一个节点,最后使pre.next指向fast即可完成题目

解题代码:

function removeNthFromEnd( head ,  n ) {
    // write code here
    let fast = head;
    let slow = head;
    let pre
    for(let i = 0; i < n; i++) {
        fast = fast.next
        if(fast == null) return head.next;
        
    }
    while(fast != null) {
        fast = fast.next;
        pre = slow;
        slow = slow.next;
    }
    pre.next = slow.next
    return head;
}