如何在Python中测试与链表相关的程序

2024-05-29 10:59:35 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,合并2个已排序的链表。 我理解解决问题的代码。但是,如何创建两个链表并查看输出?我对树木也有同样的问题。如果我知道如何测试输入,那将非常有帮助

输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:


Tags: 代码selfl1for排序defvalclass
2条回答

对于使用链表测试解决方案,有助于使用函数(或方法)将链表转换为列表,反之亦然。因此,请定义这些:

def to_linked_list(iterable):
    head = None
    for val in reversed(iterable):
        head = ListNode(val, head)
    return head

def to_native_list(head):
    lst = []
    while head:
        lst.append(head.val)
        head = head.next
    return lst

现在,您可以更轻松地测试解决方案:

l1 = to_linked_list([1,2,4])
l2 = to_linked_list([1,3,4])
result = Solution().mergeTwoLists(l1, l2)
print(to_native_list(result))

如果你正在寻找一个测试用例:试试这样的东西

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

l1 = ListNode(1)
l1.next = ListNode(2)
curr = l1.next
curr.next = ListNode(4)

l2 = ListNode(1)
l2.next = ListNode(3)
l2.next.next = ListNode(4)

创建解决方案列表由您决定

相关问题 更多 >

    热门问题