卡码网语言基础课 | 14. 链表的基础操作 II | 刷题心得

本文讲述了如何在已有的单链表基础上,实现查询指定节点值的功能,通过在链表类中添加get函数,处理边界情况并遍历链表查找指定节点。重点强调了链表构造的细节以及代码编辑器VSCode的使用。
摘要由CSDN通过智能技术生成

2024-1-2,卡码网第14题链表的基础操作 II


目录

1. 题目描述

2. 代码实现

3. 总结


1. 题目描述

承接上题,这次的实现目标是要在能够构建一个正常使用的单链表的基础上,实现查询指定节点的值的功能。

如上图,如何在给定链表(第一行)后,使用第二行提供的数字,找到该数字代表的指定节点的。这道题考察能否在类中增加新功能,并且在主函数中调用该功能。

2. 代码实现

首先,和上一题一样,创建一个能够正常使用的单链表;然后根据题目描述,可以选择直接在主函数中写代码来实现查询指定节点,也可以通过在链表类中增加一个新功能实现查询指定节点的值。本文使用第二种方法,在链表类中加入新函数get来实现查询链表指定节点的值。因为,这样就能够多次调用,减少重复代码次数。而链表创建全部代码就不放出,因为上一篇已经讲过了。

链表的构建icon-default.png?t=N7T8http://t.csdnimg.cn/U7fjC

新定义get函数,并且具有数字n这个属性,n即为外部提供的链表中第n个节点。如何实现查询这个功能,首先需要考虑n的大小是否超过链表长度或者小于0的情况,检验通过后才能进行查询,查询思路就是在for循环中一个一个按链表顺序迭代节点,直到 i 和 n 相等,即找到了指定的节点。最后需要加一句‘return None’来把不满足上述条件的所有情况统统去除。最后只需要调用该函数就能查找了。

3. 总结

此题与上一篇链表的创建相比,只是增加了查询这个功能,如何在创建类中定义新功能实现题目目标是本题考查的关键。

那么,在我写这道题的过程中,我个人认为需要注意的地方仍然是定义链表时的种种细节。上一篇也有讲到,这里再补充一点。

在尝试找到链表末尾的代码中,第二行赋值currentnode时,

currentnode = self.headnode.next

 应该改为

currentnode = self.headnode

因为,虽然头节点已经判断不为空了,但是并不知道头节点的下一个节点是否为空。


本人所用代码编辑器为 VS Code,刷题网站为卡码网


卡码网icon-default.png?t=N7T8https://kamacoder.com/

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨使我安睡2580

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值