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

2021-07-31 21:59:11 字數 679 閱讀 7872

// 題目:合併兩個增序鍊錶

// 解法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的頭結點將是合併後鍊錶的頭結點。如下圖所示。繼續合併兩個鍊錶中剩餘的結點 圖中虛線框所示 在兩個鍊錶中剩下的結點依然是排序的,因此合併這兩個鍊錶的步驟和前面的步驟是一樣的。我們還是比...