📜  Python程序将一个链表合并到另一个链表的交替位置(1)

📅  最后修改于: 2023-12-03 15:34:31.693000             🧑  作者: Mango

Python程序将一个链表合并到另一个链表的交替位置

1. 程序介绍

本程序旨在将一个链表合并到另一个链表的交替位置。例如输入链表A:1->2->3 和 链表B:4->5->6,则输出链表:1->4->2->5->3->6。

2. 运行环境

本程序运行于Python 3.x环境。

3. 使用方法

本程序提供链表结构体的定义和链表合并函数的实现,用户可直接调用链表合并函数。以下是链表结构体的定义:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

以下是链表合并函数的实现:

def merge_alternately(l1: ListNode, l2: ListNode) -> ListNode:
    dummy = ListNode(-1)
    tail = dummy
    while l1 and l2:
        tail.next = l1
        l1 = l1.next
        tail.next.next = l2
        l2 = l2.next
        tail = tail.next.next
    tail.next = l1 if l1 else l2
    return dummy.next

函数参数说明:

  • l1: 链表1
  • l2: 链表2

函数返回值说明:返回合并后的链表

4. 示例

以下为本程序的使用示例:

# 创建链表1和链表2
l1 = ListNode(1, ListNode(2, ListNode(3)))
l2 = ListNode(4, ListNode(5, ListNode(6)))

# 合并链表1和链表2
merged_list = merge_alternately(l1, l2)

# 打印合并后的链表
while merged_list:
    print(str(merged_list.val) + "->", end="")
    merged_list = merged_list.next
print("None")

输出结果为:

1->4->2->5->3->6->None

本示例中,链表1为1->2->3,链表2为4->5->6,合并后的链表为1->4->2->5->3->6。

5. 总结

本程序提供了一个简单的方法将一个链表合并到另一个链表的交替位置,可以应用于各种链表问题中。