# 21. Merge Two Sorted Lists
https://leetcode.com/problems/merge-two-sorted-lists/
## 思路:
1. 建立新的linked list 去鏈結所有的點。
2.
## 迭代方法
```python=
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
dum = ListNode(None)
prev = dum
while l1 and l2:
if l1.val <= l2.val:
prev.next = l1
l1 = l1.next
else:
prev.next = l2
l2 = l2.next
prev = prev.next
if l1 == None:
prev.next = l2
elif l2 == None:
prev.next = l1
return dum.next
```
## 遞迴方法
```python=
class Solution:
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
NewList = ListNode()
def Merge(NewList,node1,node2):
if node1 == None and node2 == None:
return
if node1 == None and node2 != None:
return node2
if node2 == None and node1 != None:
return node1
if node1.val <= node2.val:
NewList = node1
NewList.next = Merge(NewList, node1.next,node2)
if node1.val > node2.val:
NewList = node2
NewList.next = Merge(NewList, node1,node2.next)
return NewList
return Merge(NewList,list1,list2)
```