當給定一個整數數組時,我試圖用它之前的整數乘積來更改每個元素。鏈表的遞歸
例如,int[] array = {2,2,3,4};
現在是:{2, 4, 12, 48};
我添加的每個元素爲LinkedList
,我試圖以遞歸方式做到這一點。
這是我有:
Node curr = list.getFirst();
product(curr);
public static void product(Node curr)
{
if(curr == null)
{
return;
}
else
{
int data = curr.getData() * curr.getNext().getData();
Node newNode = new Node(data);
curr.setNext(newNode);
// product(curr);
}
}
的第一款產品的工作原理:{2,4},但是當我試圖把在遞歸,我得到一個計算器。有什麼建議麼??
編輯:所以我要麼得到一個計算器或空指針異常是因爲我更新的列表,然後試圖讓下一個整數(但原因,因爲這裏只有兩個元素該列表中沒有getNext()
)。我不知道如何解決這個問題。
的部分這個問題似乎是你添加下一個節點,所以每次你遞歸下一個節點,因此沒有結束遞歸。不知道爲什麼Tims解決方案沒有解決這個問題。 –
@BenKnoble我在原來的帖子中不小心把他的舊程序留在了一行,儘管我已經刪除了它。也許他運行了這個舊版本的代碼。 –
@TimBiegeleisen這是非常可能的。 –