19. Remove Nth Node From End of List(js)

19. Remove Nth Node From End of List

Given a linked list, remove the n-th node from the end of list and return its head.

Example:

Given linked list: 1->2->3->4->5, and n = 2.

After removing the second node from the end, the linked list becomes 1->2->3->5.
题意:删除链表的倒数第n个节点
代码如下:
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @param {number} n
 * @return {ListNode}
 */
var removeNthFromEnd = function(head, n) {
     if(head.next==null) return null;
        //定义两个指针
        let pre=head,cur=head;
        //让cur沿着head向后移动n个节点
        for(let i=0;i<n;i++){
            cur=cur.next;
        }
        if(!cur) return head.next;
        //直至cur指向head末端
        while(cur.next){
            cur=cur.next;
            pre=pre.next;
        }
        pre.next=pre.next.next;
        return head; 
};

猜你喜欢

转载自www.cnblogs.com/xingguozhiming/p/10387351.html