删除链表中的倒数第n个节点
- 1、采用双指针解法
算法思路图解:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
<script>
//双指针方法,防止遍历俩遍
//设置中间间隔俩个节点
//边界问题【一个节点】,设置dumpy节点,返回空值
var removeNthFromEnd=function(head,n){
let dumpy=new ListNode();//零号节点
dumpy.next=head;
let n1=dumpy;
let n2=dumpy;
for(let i=0;i<=n;i++){
n2=n2.next;
}
while(n2!==null){
n1=n1.next;
n2=n2.next;
}
n1.next=n1.next.next;
return dumpy.next;
}
</script>
- 2、n1指向的是目标节点的前一个节点,需要把前一个节点指向目标节点的后一个节点。