删除链表中的节点
一、题目
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点
如链表 4->5->1->9 删除5变成 4->1->9
二、思路
生成一个虚拟节点dummy,首先让遍历指针curr指向dummy,设置curr的next=head,因为head有可能是待删除的节点
判断curr.next.val是否等于val,如果相等则删除节点,方法为curr的next=curr的next的next ,同时移动遍历指针进行下一次查找
三、程序实现
var deleteNode = function(head, val) {
if(!head){
return 0;
}
let dummy=new ListNode();
let curr=dummy;
curr.next=head;
//边界条件:当前指针与当前指针的next不为空
while(curr&&curr.next){
if(curr.next.val===val){
curr.next=curr.next.next;
}
curr=curr.next;
}
return dummy.next;
};

浙公网安备 33010602011771号