当前位置: 首页 > Web前端 > JavaScript

Day65-100数据结构链表(七)——删除链表中的一个节点

时间:2023-03-26 21:40:38 JavaScript

(1)今天的需求继续是链表结构的算法——删除链表中的某个节点(2)删除链表中的某个节点1.问题描述给你一个链表的头节点headlist和一个整数val,请删除链表中所有满足Node.val==val的节点,并返回新的头节点。Demo1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]Demo2:输入:head=[],val=1输出:[]Demo3:输入:head=[7,7,7,7],val=7输出:[]2.思路:定义一个头节点;迭代节点;判断值,如果值相等,则将下一个节点的下一个值赋值给当前节点的下一个值;3.代码/***单链表的定义。*functionListNode(val,next){*this.val=(val===undefined?0:val)*this.next=(next===undefined?null:next)*}*//***@param{ListNode}head*@param{number}val*@return{ListNode}*/varremoveElements=function(head,val){//如果缺少头节点,定义一个letprev=newListNode(0)//好办,第一个节点的值是一样的prev.next=headletcurr=prev//重新定义一个Head节点while(curr.next!=null){constnext=curr.next//下一个节点if(next.val==val){//下一个节点的值等于目标值curr.next=next.next//将下一个节点的下一个值赋给当前节点的下一个值}else{curr=curr.next}}returnprev.next};空间复杂度为O(1),时间复杂度为O(n)以上参考链接https://leetcode.cn/leetbook/...写学习路上的遗言,经常懈怠《有想学技术需要监督的同学嘛~》https://mp.weixin.qq.com/s/Fy...