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

标签 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 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

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

最佳答案

None 是新 ListNodenext 的默认值。其他 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

关于python - self.next = None 是如何得到l1的下一个值的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45202225/

相关文章:

python - 为什么 Python 2.7.3 认为我的 .csv 文件都在一行上?

python - tkinter.simpledialog.Dialog 使启动 tkinter.Button 处于按下状态

algorithm - 证明没有重叠的子问题?

algorithm - 一个很好的 puzzle-15 随机发生器

python - 添加记录器导致can't pickle _thread.RLock objects错误

python - 无法将 'bytes' 对象隐式转换为 str

python - 如何编写具有多个循环元素的字符串模板文件?

javascript - 如何使用 jQuery 获取 Python 字典来填充 HTML 选择选项?

algorithm - 单循环N次数据排序

使用 TFIDF 的 Python 文本分类