-1
所以我想製作一個單獨的列表,以便不通過我的方法參數操縱正在輸入的列表。基本上我希望「結果」在循環結束時與「p」相同......但由於某種原因,它不能正確出現。試圖複製Java鏈接列表...我做錯了什麼?
private static Node<Integer> multByScalarAndCarry(Node<Integer> p , int k, int c){
int carry = c; //carry is taken from parameter
Node<Integer> result = new Node<Integer>();
Node<Integer> z = result; //head for the copy list
Node<Integer> P = p; //pointer for the list being copied
//copy p into result
while(P.next!=null){
z.item = P.item;
z.next = new Node<Integer>();
z = z.next;
P = P.next;
}
...
}
忽略k和c,它們與我的問題無關。我很接近完成這種方法,這是我需要的最後一個部分。請幫忙!
編輯[SOLUTION]: 對於未來有這個問題的人,我做了一些思考,使用單獨的方法複製列表。
這裏是一個遞歸解決方案:
private static Node<Integer> copyNode(Node<Integer> p){
if(p == null) //if empty, return the same thing
return p;
Node<Integer> result = new Node<Integer>();
result.item = p.item;// construct a node item copy of p's item
result.next = copyNode(p.next); //attach list doing this for all nodes of p
return result; //return the result.
}
does ['Node.cloneNode()'](http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Node.html#cloneNode%28boolean%29)不足? – Jaycal
什麼是「不是正確的」意思,更具體地說? – alexroussos
「不正確」意味着除了某些原因外,所有內容都是相同的,最後一個節點的值不爲空(項目爲null,下一個爲null,但不爲null)。 而這個節點是從零開始的,我們應該從零開始做這樣的事情。對不起英語 –