我正在处理Leetcode上的一个问题(问题21)。它要求我合并两个已排序的链接列表并将其作为新列表返回,它会提供这样的预先输入的代码。
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
我在正式解决合并问题之前做了一些测试。我输入l1如下:
l1 = [1,2,3,4,5]
我将代码更改为:
class Solution(object):
def mergeTwoLists(self, l1, l2):
print(l1.val)
print(l1.next.val)
输出显示:
1
2
困惑我的部分是函数self.next如何获取我输入的ListNode的下一个值。根据我的理解,self.next设置为None,因此l1.next应该等于None,而None.val应该出错。有人可以帮我这个吗?
这是两张显示代码,输入和输出的图片。
此外,这是我遇到问题的链接。 https://leetcode.com/problems/merge-two-sorted-lists/#/description
答案 0 :(得分:2)
None
是新next
中ListNode
的默认值。其他ListNode
可以将其他值分配给next
。构建ListNodes
的正确链接列表涉及为每个节点的链接参数分配对下一个节点的引用:
l1 = ListNode(1)
l2 = ListNode(2)
l3 = ListNode(3)
l4 = ListNode(4)
l5 = ListNode(5)
l1.next = l2
l2.next = l3
l3.next = l4
l4.next = l5