合并两个有序链表
时间: 2023-07-10 16:25:43 浏览: 121
好的,这是一个经典的问题。假设我们要合并的两个有序链表分别为 l1 和 l2,那么我们可以按照以下步骤进行合并:
1. 定义一个新的链表 dummy,作为合并后链表的头结点。
2. 定义两个指针 p1 和 p2,分别指向 l1 和 l2 的头结点。
3. 定义一个指针 cur,初始时指向 dummy。
4. 比较 p1 和 p2 指向的节点的值,将较小的节点接到 cur 的后面,并将对应的指针后移一位。
5. 重复步骤 4,直到 p1 或 p2 为空。
6. 将剩余的节点接到 cur 的后面。
7. 返回 dummy 的下一个节点,即合并后的有序链表的头结点。
下面是一份示意代码,供您参考:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode:
dummy = ListNode(0)
cur = dummy
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
cur.next = l1 if l1 else l2
return dummy.next
```
以上就是合并两个有序链表的方法,希望能对您有所帮助。
阅读全文