0
這是一個鏈表我的遞歸鑲嵌方法:我的插入方法有多餘?
public static MyLinkedList recursiveInsert(int value, ref MyLinkedList list)
{
if (list == null)
{
return new MyLinkedList(value, null);
{
else
{
list.next = recursiveInsert(value, ref list.next);
return list;
}
}
我學習C#和遞歸的那一刻,我的問題是:什麼是以下行冗餘?
list.next = recursiveInsert(value, ref list.next);
OK,簡單的問題,讓你開始:是什麼這讓你覺得什麼都是「多餘的」? – ClickRick
診斷信息不足。冗餘意味着沒有必要,但狀態在遞歸中總是必需的。你正在傳遞狀態,所以它不是多餘的。 –
與冗餘無關,但對於包含許多元素的列表來說,調用* recursiveInsert *(這相當於listAppend)會冒用盡調用堆棧的風險(即遞歸運行「太深」)。 – elgonzo