6-2 有序链表合并
时间: 2023-07-10 09:14:25 浏览: 117
链表是一种常见的数据结构,它可以用来存储一系列的元素,每个元素都包含一个指向下一个元素的指针。有序链表是指链表中的元素按照某个规则排列,比如按照大小顺序排列。
有序链表合并是指将两个有序链表合并成一个有序链表。具体的合并过程可以使用迭代或递归的方式实现。
下面是一个使用迭代方式实现的示例代码:
```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)
curr = dummy
while l1 and l2:
if l1.val < l2.val:
curr.next = l1
l1 = l1.next
else:
curr.next = l2
l2 = l2.next
curr = curr.next
if l1:
curr.next = l1
if l2:
curr.next = l2
return dummy.next
```
在这个示例代码中,我们定义了一个 `ListNode` 类来表示链表中的每个元素,其中包含一个 `val` 属性和一个 `next` 属性,分别表示元素的值和指向下一个元素的指针。
然后我们定义了一个 `mergeTwoLists` 函数,它接受两个有序链表作为参数,并返回一个合并后的有序链表。在函数中,我们创建了一个 `dummy` 节点作为合并后链表的头节点,然后使用 `curr` 变量来记录合并后链表的当前节点。
接着我们使用一个 `while` 循环来遍历两个输入链表,对于每个节点,我们将其值较小的节点添加到合并后链表的末尾,并将该链表的指针后移。最后,我们判断是否存在某个链表还有剩余节点,如果有,则将剩余节点直接添加到合并后链表的末尾。
最后我们返回合并后链表的头节点即可。
阅读全文