合併兩個排序的鍊錶

2021-09-08 11:40:02 字數 736 閱讀 6654

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

思路:題目相對簡單,有兩個思路,乙個是遍歷兩個鍊錶的公共長度,按值的大小把各個節點連線起來,最後把較長鍊錶的剩餘部分追加到最後。第二個思路,這個類似於自然合併排序,可以使用遞迴分治的思想來解決問題,還讓你容易就能把這個問題分解成子問題。

實現**

非遞迴:

/*

public class listnode }*/

public

class

solution

else

listnode pnode =head;

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

)

else

pnode =pnode.next;

}while(list1 != null

)

while(list2 != null

)

return

head;

}}

遞迴:

/*

public class listnode }*/

public

class

solution

else

return

head;

}}

合併兩個排序鍊錶

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。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...