两个有序链表合并pta
时间: 2024-10-27 17:04:06 浏览: 43
PTA 两个有序链表序列的合并
有序链表合并是指将两个已排序的链表合并成一个新的链表,新链表仍然保持有序。这个过程通常涉及到遍历两个链表,比较它们的节点值,选择较小的一个添加到结果链表,并更新当前链表指针。以下是合并的基本步骤:
1. 创建一个新链表,初始化它为空。
2. 比较当前两个链表的头节点:如果第一个链表的节点值小于第二个链表的节点值,就将第一个链表的头节点加入到新链表,然后移动第一个链表的指针;反之,则将第二个链表的头节点加入并移动指针。
3. 继续上述步骤,直到其中一个链表遍历完,然后将另一个链表剩余的部分依次添加到新链表。
4. 最后返回新链表的头节点。
这是一个典型的递归或者迭代解决的问题,在许多编程面试中作为一道经典题目。下面是伪代码示例:
```python
def merge_sorted_lists(l1, l2):
if not l1:
return l2
elif not l2:
return l1
elif l1.val < l2.val:
l1.next = merge_sorted_lists(l1.next, l2)
return l1
else:
l2.next = merge_sorted_lists(l1, l2.next)
return l2
```
阅读全文