类解决方案中的文件“ /home/shubham/PycharmProjects/LeetCode/AddTwoLinkedList.py”,第5行,解决方案:在解决方案addTwoNumber(l1,第35行,文件“ /home/shubham/PycharmProjects/LeetCode/AddTwoLinkedList.py”,第35行,l2)TypeError:addTwoNumber()缺少1个必需的位置参数:“ l2”
class ListNode:
def __init__(self,x):
self.val=x
self.next=None
class Solution:
def addTwoNumber(self,l1,l2):
head=l3=ListNode(0)
carry=0
while l1 or l2 or carry:
if l1:
carry+=l1.val
l1=l1.next
if l2:
carry+=l2.val
l2=l2.next
l3.val=carry%10
carry=carry//10
if l1 or l2 or carry:
l3.next=ListNode(0)
l3=l3.next
print(head)
return head
l1 = ListNode(2)
l1 = ListNode(4)
l1 = ListNode(3)
l2 = ListNode(5)
l2 = ListNode(6)
l2 = ListNode(4)
addTwoNumber(l1, l2)
答案 0 :(得分:2)
我发现您的代码存在一些问题。
首先,Python是基于空格的语言。
因此,您的代码段
l1 = ListNode(2)
l1 = ListNode(4)
l1 = ListNode(3)
l2 = ListNode(5)
l2 = ListNode(6)
l2 = ListNode(4)
addTwoNumber(l1, l2)
实际上在您的Solution
类的正文中。
这需要被拉到文件的全局范围。为了简化这篇文章,我删除了您的代码正文。
class Solution:
# put your code in here
s = Solution()
l1 = ListNode(2)
l2 = ListNode(6)
answer = s.addTwoNumber(l1, l2)
注意,我也是如何创建Solution
实例的。我们需要这样做,因为addTwoNumber
是Solution
然后您使用python your_filename.py
您将获得TypeError: addTwoNumber() missing 1 required positional argument: 'l2'
,因为Python在调用实例方法时会自动提供self
变量,该变量引用对象的实例。
但是,您不允许Python提供self
,因为当前调用它的方式就像是静态方法一样,因此它从左到右填充了参数。也就是说,它分别通过l1
和l2
传递“ self”和“ l1”,但是您的函数需要3个参数。
答案 1 :(得分:1)
函数addTwoNumber
是成员函数,因此需要将self
的值作为addTwoNumber(selfValue, l1, l2)
或selfValue.addTwoNumber(l1, l2)
传递。
只需将selfValue
替换为您想作为self
参数传递的任何值即可。