算法优解(5)-删除单链表的倒数第k个节点

该博客介绍了如何删除单链表的倒数第k个节点,提供了三种方法,包括先求链表长度再遍历、双指针法以及通过数学逻辑直接定位。并给出了核心算法代码,实现了一次遍历删除节点的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自左神书中的一道题,在左神核心代码的基础上,添加了链表的构建和输出以及删除节点的打印,将这道题完善成了一个小Demo,和各位共勉。

题目:

* 给定一个单链表,删除它的倒数第k个节点。
* 例如给定链表: 1→2→3→4→5,删除它的倒数第二个节点后变为 1→2→3→5。


方法:

* 第一种方法,就是先对单链表进行进行一次遍历,求出其长度n。然后再进行第二次遍历,设一个指针,向后移动n−k个位置,然后删除这个节点。 
* 第二种方法就是使用双指针,两个指针保持k间距,第一个指针走到底,第二个指针所在位置就是我们的倒数第k个节点,只需要对链表进行一遍访问即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值