Lintcode 165 合併兩個排序鍊錶

2021-08-28 05:57:11 字數 981 閱讀 2752

我的程式碼如下:

def mergetwolists(self, l1, l2):

if l1 == none:

return l2

if l2 == none:

return l1

res = listnode(none)

while l1 and l2:

if l1.val <= l2.val:

print(l1.val)

res = l1 //不該直接把l1賦給res 應該採取res.next的形式

l1 = l1.next

res = res.next //不然鍊錶在後移的時候會覆蓋現在的節點

else:

res = l2

l2 = l2.next

res = res.next

if l1:

res.next = l1

if l2:

res.next = l2

return res

答案:

class solution(object):

'''題意:合併兩個有序鍊錶

'''def mergetwolists(self, l1, l2):

dummy = listnode(0)

tmp = dummy

while l1 != none and l2 != none:

if l1.val < l2.val:

tmp.next = l1

l1 = l1.next

else:

tmp.next = l2

l2 = l2.next

tmp = tmp.next

if l1 != none:

tmp.next = l1

else:

tmp.next = l2

return dummy.next

LintCode 165合併兩個排序鍊錶

題目鏈結 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。空間複雜度o 1 時間複雜度o m n m n分別為鍊錶l1和鍊錶l2的長度 definition of listnode class listnode ...

165 合併兩個排序鍊錶

中文english 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 1 輸入 list1 null,list2 0 3 3 null 輸出 0 3 3 null 樣例2 輸入 list1 1 3 8 11 15 null,list2 2 null 輸出 1 2 3 8 11 15 null 輸入測試資料...

165 合併兩個排序陣列

原題 您在真實的面試中是否遇到過這個題?是 標籤鍊錶 思路 逐個比較l1與l2的結點,將較小的掛載在結果鍊錶上。小技巧 可以建立乙個資料無效的結點作為標誌頭節點,返回其next。ac definition of singly linked list class listnode class solu...