0
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的一個元素,但其他兩行沒有道理給我。
到底! 1+爲一個深思熟慮的答案! –
ahhh,節點的值可以不同於原來的值?因爲我被告知節點對象包含一個引用另一個節點對象和類對象(如汽車)的數字。 – user2089523
您能否詳細說明「節點的價值可以與原來的價值不同?」 。每個節點對象都包含下一個節點的引用,即從一個節點繼續遍歷到下一個節點,直到到達最後 – Lokesh