我正在研究 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
最佳答案
None
是新 ListNode
中 next
的默认值。其他 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/