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

第63-100天数据结构链表(五)——双指针法删除链表的倒计时节点

时间:2023-03-27 00:32:05 JavaScript

(1)需要双指针来解决链表的问题,挺有意思的~继续做~(2)用双指针的方法删除链表的倒数第二个节点1.问题描述给你一个链表,删除链表的倒数第n个节点,返回链表的头节点。输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]2、思路:定义快指针和慢指针,快指针移动n个位置;fast和slow同时移动,当fast移动到最后一个节点时,slow的下一个节点就是要删除的节点3.title/***单链表定义。*functionListNode(val,next){*this.val=(val===undefined?0:val)*this.next=(next===undefined?null:next)*}*//***@param{ListNode}head*@param{number}n*@return{ListNode}*/varremoveNthFromEnd=function(head,n){letfast=head//定义快指针letslow=head//定义慢指针//将快速指针移动到n个位置while(n--){fast=fast.next}//如果fast为null,表示删除第一个节点,返回第二个节点即可if(!fast){head=head.nextreturnhead}//快慢同时移动time,fast移动到最后一个节点时,slow的下一个节点就是要删除的节点while(fast.next){fast=fast.nextslow=slow.next}slow.next=slow.next.nextreturnhead};空间复杂度会是O(1)时间复杂度会是O(n)以上参考链接https://leetcode.cn/leetbook/...写在学习路上的最后一句话,经常懈怠《有想学技术需要监督的同学嘛~》https://mp.weixin.qq.com/s/Fy...