劍指Offer17合併兩個排序的鍊錶

2021-06-23 08:55:28 字數 465 閱讀 2438

題目:

輸入兩個遞增排序的鍊錶,合併這個兩個鍊錶並使得新煉表中的結點仍然是按照遞增排序的。

這個題目很簡單,下面直接看**,我用兩種方式實現了題目的要求,遞迴的方法是書上寫的,很短小,也很經典。非遞迴方法有大的冗餘。

遞迴:

listnode * merge(listnode * list1,listnode * list2)

else

return head;

}

非遞迴:

listnode * mergenoqiantao(listnode * list1,listnode * list2)

}else

}while(list1 != null && list2 != null)

}else}}

return result;

}

劍指offer 17 合併兩個排序的鍊錶

題目 合併兩個增序鍊錶 解法1 非遞迴的方法 public class main public static listnode mergelist listnode node1,listnode node2 if node2 null listnode result listnode temp 返回...

劍指offer 17 合併兩個排序的鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴 struct listnode class solution else return pmergehead 非遞迴 struct listnode class solution else li...

劍指offer 17 合併兩個排序表的鍊錶

首先分析合併兩個鍊錶的過程。我們的分析從合併兩個鍊錶的頭結點開始。鍊錶1的頭結點的值小於鍊錶2的頭結點的值,因此鍊錶1的頭結點將是合併後鍊錶的頭結點。如下圖所示。繼續合併兩個鍊錶中剩餘的結點 圖中虛線框所示 在兩個鍊錶中剩下的結點依然是排序的,因此合併這兩個鍊錶的步驟和前面的步驟是一樣的。我們還是比...