力扣合併兩個有序鍊錶

2021-09-16 12:19:28 字數 1580 閱讀 5171

合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。

示例:輸入:1->2->4, 1->3->4

輸出:1->1->2->3->4->4

1.思路 ,建立乙個新列表xin,同時遍歷兩個鍊錶l1,l2,比較大小,小的加到新的列表中去,然後知道其中乙個遍歷完,最後再把餘下的加到新的列表後面就可以了。

# definition for singly-linked list.

# class

listnode

:# def __init__

(self, x)

:# self.val = x

# self.next = none

class

solution

: def mergetwolists

(self, l1: listnode, l2: listnode)

-> listnode:

xin=

listnode(0

) cur=xin

while l1 and l2:

if l1.val < l2.val:

cur.next=l1

l1=l1.next

else

: cur.next=l2

l2=l2.next

cur=cur.next

if l1:

cur.next=l1

if l2:

cur.next=l2

return xin.next

2.思路 ,和思路1相同但是用了遞迴的思想。

# definition for singly-linked list.

# class

listnode

:# def __init__

(self, x)

:# self.val = x

# self.next = none

class

solution

: def mergetwolists

(self, l1: listnode, l2: listnode)

-> listnode:

if l1 == none:

return l2

if l2 == none:

return l1

res =

listnode(0

)if l1.val <= l2.val:

res = l1

res.next = self.

mergetwolists

(l1.next,l2)

else

: res = l2

res.next = self.

mergetwolists

(l1,l2.next)

return res

在編寫**時一定要記得每次迴圈把新的鍊錶向下移動一位。

力扣 合併兩個有序鍊錶

將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4迭代法 definition for singly linked list.struct listnode listnode int x ...

力扣 21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 definition for singly linked list.struct listnode struct listnode merge...

合併兩個有序鍊錶 力扣 LeetCode

描述將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 方法一 正常遍歷public listnode mergetwolists listnode l1,listnode l2 else if...