java - 在 Java 中将节点添加到列表的开头?

标签 java algorithm linked-list

我正在通过 Sedgewick 的算法 学习链表基础知识,并遇到了将节点添加到链表开头的问题。我注意到他们正在使用以下代码重新定义“第一个节点”:

Node firstNode = new Node();
Node secondNode = new Node();
Node thirdNode = new Node();

//create 3 initial nodes
firstNode.item = "to";
secondNode.item = "be";
thirdNode.item = "or";

//set order of nodes
firstNode.next = secondNode;
secondNode.next = thirdNode;

//add new node to beginning
Node oldFirstNode = firstNode;

//recreate first node
firstNode = new Node();

firstNode.item = "not";
firstNode.next = oldFirstNode;

为什么我们不这样做:Node firstNode = new Node();? 不明白为什么它是 firstNode = new Node();

最佳答案

你不能

Node firstNode = new Node();

稍后在代码中 - 因为这将尝试声明一个与现有变量同名的新局部变量。 (你可以有一个与实例字段或静态字段同名的局部变量,但你不能同时在范围内有两个同名的局部变量。)相反,这一行:

firstNode = new Node();

现有局部变量分配一个新值。

关于java - 在 Java 中将节点添加到列表的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224502/

相关文章:

java - 通过模拟器运行时访问android系统文件

java - 测试 TreeMap 中的负值

java - jsqlparser 评估条件

algorithm - 计算 R 中配对数据的平均值之间的差异

mysql - 通过链接的 MySQL 数据库更新 MySQL 数据库的 MSSQL

c - 打印链表时最后一个元素值出现在第一个和最后一个位置

java - 字母打印直到整个单词最终以三角形的形式显示,Java

arrays - 具有最小数量的相等相邻值的数组改组

找到最小整数 m 的算法,当除以 n 个不同的整数时留下不同的余数

无法删除单链表中的节点