首页 > 解决方案 > 这两个语句在循环链表中是否等效?

问题描述

循环链表的新手,我想知道这些是否与古德里奇教科书显示底部的功能相同,但我“感觉”顶部的功能完全相同。

tail = new Node(s, tail);
//----------------------------------------------------
tail = new Node(s, null);
tail.setNext(tail);

标签: javalinked-list

解决方案


不,它们不一样,因为tail第一个版本中的值是旧值,而tail第二个版本中的值是新值,即新值Node本身。

该代码只有在代码运行时列表为空时才有意义,否则您不希望新节点将自身引用为next. 在这种情况下,旧值为tailnull,这意味着第一个版本与以下内容相同:

tail = new Node(s, null);

这很明显,这两个版本并不相同。


推荐阅读