怎么写merge two list 的 linkedlist
时间: 2023-08-23 10:06:05 浏览: 54
可以按照以下步骤实现合并两个链表:
1. 创建一个新的链表作为合并后的结果链表,同时创建两个指针分别指向两个链表的头部节点。
2. 通过比较两个指针所指节点的值,将较小值的节点添加到结果链表中,并将对应链表的指针后移一位。
3. 如果其中一个链表已经遍历完毕,则将另一个链表剩余的节点全部添加到结果链表的末尾。
4. 返回结果链表的头部节点即可。
以下是一个示例代码实现:
```python
class Node:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1: Node, l2: Node) -> Node:
# 创建结果链表和两个指针
dummy = Node(0)
cur = dummy
p1, p2 = l1, l2
# 比较两个链表的节点值,将较小值的节点添加到结果链表中
while p1 and p2:
if p1.val <= p2.val:
cur.next = p1
p1 = p1.next
else:
cur.next = p2
p2 = p2.next
cur = cur.next
# 将另一个链表的剩余节点添加到结果链表末尾
if p1:
cur.next = p1
else:
cur.next = p2
# 返回结果链表的头部节点
return dummy.next
```
注意,上述代码中的 `Node` 类定义了链表节点的数据结构,`mergeTwoLists` 函数接收两个链表的头部节点作为参数,返回合并后的链表的头部节点。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)