删除链表中的节点

一、题目

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点

如链表 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;
};
posted @ 2022-04-16 15:49  花村店长  阅读(70)  评论(0)    收藏  举报