Python self.next=None如何获得l1的下一个值?

Python self.next=None如何获得l1的下一个值?,python,algorithm,python-3.x,mergesort,nonetype,Python,Algorithm,Python 3.x,Mergesort,Nonetype,我正在解决Leetcode的一个问题(问题21)。它要求我合并两个已排序的链表,并将其作为一个新列表返回,它给出了这样的预输入代码 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def mergeTwoL

我正在解决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应该出错。有人能帮我吗

下面是两张显示代码、输入和输出的图片

还有,这里是我遇到问题的链接。

在新的
列表节点中,
None
next
的默认值。其他
ListNode
s可以将其他值分配给
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

None
是新
ListNode
next
的默认值。其他
ListNode
s可以将其他值分配给
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

欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。我怀疑您是否真的将这样一个常规列表传递到了函数中,并获得了引用的输出<代码>([1,2,3,4,5])。val
生成AttributeError。欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。我怀疑您是否真的将这样一个常规列表传递到了函数中,并获得了引用的输出<代码>([1,2,3,4,5])。val生成AttributeError。感谢您的回复。我确实通过了一份常规名单。我在问题中上传了一张图片,上面显示了我的输入和输出,以及我遇到问题的网站。也许你可以看看。我理解你的解释,但让我困惑的是我没有设置l1.next=l2,当我键入l1.next.val时,它仍然给我第二个值。我无法复制你的图片,因为我在该网站上没有帐户。我只能假设,当它说
[1,2,3,4,5]
时,它实际上意味着无论他们使用什么链表表示法,他们已经为您做了
l1.next=l2
。其他语言是不是说
[1,2,3,4,5]
。他们可能会将我输入的内容更改为某种格式。谢谢你的帮助。很遗憾,我没有15个声誉来支持你的答案。谢谢你的回复。我确实通过了一份常规名单。我在问题中上传了一张图片,上面显示了我的输入和输出,以及我遇到问题的网站。也许你可以看看。我理解你的解释,但让我困惑的是我没有设置l1.next=l2,当我键入l1.next.val时,它仍然给我第二个值。我无法复制你的图片,因为我在该网站上没有帐户。我只能假设,当它说
[1,2,3,4,5]
时,它实际上意味着无论他们使用什么链表表示法,他们已经为您做了
l1.next=l2
。其他语言是不是说
[1,2,3,4,5]
。他们可能会将我输入的内容更改为某种格式。谢谢你的帮助。很遗憾,我没有15个声望来支持你的答案。