我必須編寫一個重複的函數來複制鏈表的每個元素並返回一個鏈表,如果L = [2,3,4],則重複(L)= [2,2,3,3,4 ,4]。我必須遞歸地做這件事。我意識到下面不是正確的解決方案,但我感到困惑。 =(如何在Java中遞歸地複製鏈表的每個元素?
public class MyList {
int value;
MyList next;
public static MyList duplicate(MyList L){
if(L.next == null){
L.next.value = L.value;
L.next.next = null;
} else {
MyList temp = L.next;
L.next.value = L.value;
L.next.next = temp;
duplicate(L.next);
}
return L;
}
}
爲什麼你的方法不起作用?它對你的示例輸入有什麼作用?請不要假設我們運行您的代碼,並花幾個小時爲您查找錯誤。請幫助我們,提供儘可能多的信息。一般的過程應該是遞歸地遍歷整個列表,然後爲每個元素在當前元素之後插入相同的元素。這兩個部分應該相對容易實施。首先你應該實現一個工作** insert **方法。另外,爲什麼你的MyList類型的列表元素?你不應該有兩個類'List'和'Element'? – Zabuza
如果你繼續添加項目到列表中,你永遠不會走到最後。因此,從列表的末尾回到開始。所以我會創建一個雙鏈接列表並添加MyList。 – jdweng
看看我對此完全陌生,並沒有很多練習遞歸或Java,你不必粗魯。很高興你很容易實現。我問了這個問題,所以有人可以向我解釋如何實現它。 – Laura