Leetcode 21 合併鍊錶 python

2021-09-11 01:29:02 字數 1292 閱讀 9009

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

方法一(非遞迴):

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

# 返回合併後列表

def merge(self, phead1, phead2):

first = head = listnode(0)

while phead1 and phead2:

if phead1.val <= phead2.val:

head.next = phead1

phead1 = phead1.next

else:

head.next = phead2

phead2 = phead2.next

head = head.next

if phead1:

head.next = phead1

if phead2:

head.next = phead2

return first.next

方法二(遞迴):

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

# 返回合併後列表

def merge(self, phead1, phead2):

if not phead1:

return phead2

if not phead2:

return phead1

if phead1.val <= phead2.val:

phead1.next = self.merge(phead1.next, phead2)

return phead1

else:

phead2.next = self.merge(phead1, phead2.next)

return phead2

更多題目包括leetcode、牛客網、各種排序演算法解法參見個人github,持續更新中,歡迎star ~~

leetcode 21 合併公升序鍊錶

將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 1.考慮遞迴,如果遍歷的時候,l1節點值小於l2,則返回的應該為此時的l1節點及l1.next和l2拼接後的結果,這就形成了遞迴的條件...

Leetcode 21 合併有序鍊錶

題目簡介 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 include using namespace std definition for singly linked list.stru...

LEETCODE 21合併有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通 過拼接給定的兩個鍊錶的所有節點組成的。1.迭代法,比較原兩煉表中元素大小後將元素插入新的鍊錶中 listnode mergetwolists listnode l1,listnode l2 else prev prev next prev ne...