Remove Nth Node From End of List

问题简介;给定链表,从链表末尾删除第n个节点并返回其头部

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

例:

给定链表:1-> 2-> 3-> 4-> 5,n = 2

从末尾删除第二个节点后,链表变为1-> 2-> 3-> 5

LeetCode第十九题-链表节点的删除 随笔 第1张

解法一:

先遍历一遍链表,得到链表的长度,再将长度减去给定的n得到正序的索引,再遍历一遍链表,在正序的索引处连接下下结点

LeetCode第十九题-链表节点的删除 随笔 第2张

复杂度分析:

时间复杂度:o(n)取决于链表的长度

空间复杂度:o(1)占有的是固定的内存

解法二:也可以通过两个变量来做,第一次遍历将第一个变量遍历到给定的N处,第二次遍历同时遍历两个变量,当第一个变量遍历到结尾时,第二个遍历就是遍历到倒序n的位置

LeetCode第十九题-链表节点的删除 随笔 第3张

小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

LeetCode第十九题-链表节点的删除 随笔 第4张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄