java合併兩個排序的鍊錶(思路與實現)

2021-08-20 21:32:01 字數 726 閱讀 6044

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

思路一:

使用遞迴的思想解決這個問題;

實現:

public listnode merge(listnode list1,listnode list2) 

if(list2 == null)

if(list1.val <= list2.val)else 

}

思路二:

則是使用非遞迴的思想,當兩個鍊錶有乙個為空則返回另外乙個,當兩個鍊錶都不為空,則進行比較,當乙個鍊錶遍歷完成。判斷另外乙個鍊錶是否為空,如果不為空,則將這個不為空的鍊錶剩下的都連線到這個拼接的鍊錶上面去。

實現二:

public listnode merge(listnode list1,listnode list2) 

if(list1 == null && list2 != null)

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

list1 = list1.next;

}elseelse

list2 = list2.next;}}

while(list1 == null)else

}while(list2 == null)else

}return root;

}

17 合併兩個排序的鍊錶 JAVA

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 利用遞迴來完成,首先要解決好空鍊錶的情況,1.鍊錶1為空,直接返回鍊錶2。2.鍊錶2為空,直接返回鍊錶1.3.鍊錶1 2都為空則返回null。其次開始比較鍊錶1 2的頭結點的大小,建立乙個結點new...

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...