gpt4 book ai didi

java - 节点 "dynamic"是变量吗?

转载 作者:行者123 更新时间:2023-12-01 14:43:12 27 4
gpt4 key购买 nike

public CharList(CharList l) 
{
// Whatever method your CharList provides to get the
// first node in the list goes here
CharNode pt = l.head();

// create a new head node for *this* list
CharNode newNode = new CharNode();
this.head = newNode;

// Go through old list, copy data, create new nodes
// for this list.
while(pt != null)
{
newNode.setCharacter(pt.getCharacter());
pt = pt.getNext();
if (pt != null)
{
newNode.setNext(new CharNode());
newNode = newNode.getNext();
}

}
}

好的,这是一个复制构造函数。我不太明白的是最后两行。

            newNode.setNext(new CharNode());
newNode = newNode.getNext();

基本上,程序应该在节点内创建一个节点,以便它指向 LinkedList 的另一个元素。这就是第一行应该做并且正在做的事情;但是,newNode = newNode.getNext(); 行不是在节点内定义节点,而是定义节点。只是覆盖指向另一个节点的节点,使得第一行无用。有什么我没有得到的吗?

pt = pt.getNext();

这一行没问题,因为 pt 可以被覆盖,因为 pt 是我们作为属性传递的 LinkedList 中的一个元素,但其他两行对我来说没有意义。

最佳答案

代码正确。它不会覆盖它,只是移动到下一个节点并设置其值。

Step1 : Set next node using newNode.setNext(new CharNode());
Step2 : Move to next node using newNode = newNode.getNext();
Step 3 : Set value for next node newNode.setCharacter(pt.getCharacter());

希望能够澄清。

关于java - 节点 "dynamic"是变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15730887/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com