java - 这两个语句在循环链表中是否等效?
问题描述
循环链表的新手,我想知道这些是否与古德里奇教科书显示底部的功能相同,但我“感觉”顶部的功能完全相同。
tail = new Node(s, tail);
//----------------------------------------------------
tail = new Node(s, null);
tail.setNext(tail);
解决方案
不,它们不一样,因为tail
第一个版本中的值是旧值,而tail
第二个版本中的值是新值,即新值Node
本身。
该代码只有在代码运行时列表为空时才有意义,否则您不希望新节点将自身引用为next
. 在这种情况下,旧值为tail
null,这意味着第一个版本与以下内容相同:
tail = new Node(s, null);
这很明显,这两个版本并不相同。
推荐阅读
- python - 通过 Python 替换整个列的值
- amazon-web-services - AWS Sagemaker 无法从某些区域读取 S3 数据
- swift - 根据时间创建 if 语句
- angular - 安装 angular 10 后,我无法使用它。检查版本时出现此错误
- r - 每隔 n 次将数值向量分成间隔
- javascript - 垃圾收集是否会从 JS 中的构造中删除变量?
- c# - 如果不存在,则序列化并跳过
- reactjs - 使用打字稿的反应表出了点问题
- asp.net-core - AspCore 应用程序多个 Web 配置相同的托管
- javascript - 如何使用事件更改图表颜色(谷歌图表)