合併兩個排序的鍊錶

2021-10-08 22:26:34 字數 670 閱讀 7166

方法一:迭代版本求解

初始化:定義cur指向新鍊錶的頭結點

操作:如果l1指向的結點值小於等於l2指向的結點值,則將l1指向的結點值鏈結到cur的next指標,然後l1指向下乙個結點值

否則,讓l2指向下乙個結點值

迴圈步驟1,2,直到l1或者l2為nullptr

將l1或者l2剩下的部分鏈結到cur的後面

public

class

solution

else

cur = cur.next;}if

(list1!=null) cur.next = list1;

if(list2!=null) cur.next = list2;

return h.next;

}}

時間複雜度:o(m+n),m,n分別為兩個單鏈表的長度

空間複雜度:o(1)

方法二:遞迴版本

public listnode merge

(listnode list1, listnode list2)

else

if(list2 == null)

else

else

}}

時間複雜度:o(m+n)

空間複雜度:o(m+n)

合併兩個排序鍊錶

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。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...