题目:力扣
思路:三个指针,最终要让p2指针指向尾节点,p1指针指向倒数第n个节点,p0指针指向p1的前一个节点,此时让p0的下一个为p1的下一个就完事了。操作:先让p2指针移动n个节点,此时p2与p1相差n,之后三个指针同时移动直到p2指针到了尾结点位置。
代码:
var removeNthFromEnd = function(head, n) {
let res = new ListNode()
res.next = head
let p0 = res, p1 = res.next, p2 = res.next
while (n) {
p2 = p2.next
n --
}
while (p2) {
p0 = p0.next;
p1 = p1.next
p2 = p2.next
}
p0.next = p1.next
return res.next
};
结果: