self.next = None如何得到l1的下一个值呢?

How does self.next = None get the next value of l1?

我正在研究 Leetcode 上的一个问题(问题 21)。它要求我合并两个排序的 linked 列表并将其 return 作为一个新列表,并且它给出了这样的预键入代码。

# 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应该出错。有人可以帮我解决这个问题吗?

这里有两张显示代码、输入和输出的图片。

enter image description here

此外,这里是 link 我遇到问题的地方。 https://leetcode.com/problems/merge-two-sorted-lists/#/description

那个None是默认值next在一个新的ListNode。其他 ListNode 可以将其他值分配给 next。正确构建 linked 列表 ListNodes 涉及为每个节点的 link 参数分配对下一个节点的引用:

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