首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员必知的算法和数据结构:用这种方法理解链表,更易懂

文末有领取方法

1 链表结构

一个单链表包括一系列节点(Nodes), 每个节点包括对后继节点的引用。通常,链表最后一个节点是null,这样表明链表终止了。

对于面向对象的编程,实现链表不是困难的。我们定义一个节点类,本质上它具备递归的特性。

2 链表中的节点定义

一个节点类的定义:

可以看到,一个Node对象包括两个实例变量,此处默认存储类型为String,和对下一个节点的引用。

3 串起节点

首先给出一个栈结构的示意图:每个节点的元素存储值为:to be or not to be.

那么以上节点是怎么被串起来的呢?我们首先构造出第一个节点 first, 如下所示:

接下来创建second, 并且first节点指向second

同理,直到形成如下的链表图:

4 链表的基本操作

4.1 插入一个节点到链表中

假定你想要插入一个新的节点到一个链表中,做插入最简单的地方就是在链表的刚开始第一个节点处。例如插入not字符串节点到以first节点为开始的链表中,这个正也是栈结构借助链表实现的track之一。

首先我们标记下即将成为老链表头的指针到oldFirst.

然后,new 一个即将成为新头的节点

给这个新节点的两个属性赋值,OK

4.2 从链表中删除一个节点

做删除最简洁地位置也是在刚开始节点,这个比较直观,直接将first指向first.next即可,不做任何物理上的删除。

4.3 对链表遍历

代码如下所示,遍历时在不断更新x指针。

列出详细的过程示意图:

学知识并打卡,立即领红包

【只需3步就能领红包】

☑阅读文章,欢迎留言、点赞、转发

☑点击底部广告(必选)

☑最后别忘记打卡(长按下图,打开小程序),等待领红包。

Python与机器学习算法频道

欢迎点赞和转发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716G0B4EX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券