// 題目:合併兩個增序鍊錶
// 解法1:非遞迴的方法
public class main
} public static listnode mergelist(listnode node1, listnode node2)
if(node2 == null)
listnode result;
listnode temp; //返回鍊錶中每次操作的結點
if(node1.datawhile(node1!=null && node2!=null)else
} while(node1!=null)
while(node2!=null)
return result; }
}// 解法2:遞迴的方法
public class main }
public static listnode mergelist(listnode node1, listnode node2)
if(node2 == null)
listnode result;
if(node1.dataresult.next = mergelist(node1,node2); //遞迴的判斷返回結點的下一節點
return result; }
}
劍指Offer17合併兩個排序的鍊錶
題目 輸入兩個遞增排序的鍊錶,合併這個兩個鍊錶並使得新煉表中的結點仍然是按照遞增排序的。這個題目很簡單,下面直接看 我用兩種方式實現了題目的要求,遞迴的方法是書上寫的,很短小,也很經典。非遞迴方法有大的冗餘。遞迴 listnode merge listnode list1,listnode list...
劍指offer 17 合併兩個排序的鍊錶
題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴 struct listnode class solution else return pmergehead 非遞迴 struct listnode class solution else li...
劍指offer 17 合併兩個排序表的鍊錶
首先分析合併兩個鍊錶的過程。我們的分析從合併兩個鍊錶的頭結點開始。鍊錶1的頭結點的值小於鍊錶2的頭結點的值,因此鍊錶1的頭結點將是合併後鍊錶的頭結點。如下圖所示。繼續合併兩個鍊錶中剩餘的結點 圖中虛線框所示 在兩個鍊錶中剩下的結點依然是排序的,因此合併這兩個鍊錶的步驟和前面的步驟是一樣的。我們還是比...