Python如何测试链表相关的程序
How to test programs related to linked lists in 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:
如果您正在寻找测试用例:尝试这样的事情
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)
我会把创建解决方案列表留给你。
对于使用链表测试解决方案,拥有将链表转换为列表的函数(或方法)很有帮助,反之亦然。所以定义这些:
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))
例如合并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:
如果您正在寻找测试用例:尝试这样的事情
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)
我会把创建解决方案列表留给你。
对于使用链表测试解决方案,拥有将链表转换为列表的函数(或方法)很有帮助,反之亦然。所以定义这些:
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))