将两个有序链表进行合并,合并后也是有序的,定义链表变量名以自己姓名缩写命名如张三(定义zs1=1,3,5,6; zs2=2,4,7,8)要求打印zs3是1,2,3,4,5,6,7,8。
时间: 2024-10-15 14:29:53 浏览: 20
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
在Python中,你可以通过迭代或递归的方式来合并两个有序链表。这里我会给你演示一种常见的迭代方法,使用两个指针分别指向两个链表的头节点,并比较它们的值,将较小的那个添加到新的链表中,然后移动对应的指针。这个过程会持续直到其中一个链表遍历完,剩下的部分就直接添加到新链表的末尾。
```python
def merge_sorted_lists(zs1, zs2):
# 创建一个新的链表作为结果
head = None
tail = None
# 指针遍历
while zs1 is not None and zs2 is not None:
if zs1.val <= zs2.val:
# 如果zs1的小于等于zs2,添加zs1的节点并更新指针
if head is None:
head = tail = zs1
else:
tail.next = zs1
tail = tail.next
zs1 = zs1.next
else:
# 否则添加zs2的节点
if head is None:
head = tail = zs2
else:
tail.next = zs2
tail = tail.next
zs2 = zs2.next
# 添加剩余链表的部分,如果有的话
if zs1 is not None:
tail.next = zs1
elif zs2 is not None:
tail.next = zs2
return head # 返回合并后的有序链表
# 假设已经定义了zs1 和 zs2 的链表
zs3 = merge_sorted_lists(zs1, zs2)
while zs3 is not None:
print(zs3.val, end=" ")
zs3 = zs3.next
```
阅读全文