关于力扣两数之和!!!求指教!
本帖最后由 青雨V1 于 2021-8-17 17:42 编辑不知道 这样填写错在哪里额
num1,num2要先逆向切片,再相加,return的结果也要是列表 6666
num1,num2要先逆向切片,再相加,return的结果也要是列表 {:10_266:} {:10_254:} 抱歉,之前没看题,回答错了,补了好久的链表再决定回答该题,
首先,num1 和 num2 要先逆向切片才能相加,然后 num3 也需要逆向切片
其次,l1 和 l2 并不是列表,而是链表,不能直接 for 循环遍历,而是需要 l1.next 指向下一个节点
根据你的代码改造如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
data1 = []
data2 = []
while l1:
data1.append(l1.val)
l1 = l1.next
while l2:
data2.append(l2.val)
l2 = l2.next
num1 = ''
num2 = ''
for i in data1:
num1 += str(i)
for j in data2:
num2 += str(j)
num1 = num1[::-1]
num2 = num2[::-1]
num3 = int(num1) + int(num2)
num3 = str(num3)
num3 = num3[::-1]
res = ListNode(0)
pPre = res
for i in num3:
new = ListNode(int(i))
pPre.next = new
pPre = new
return res.next
附上结果图:
好的 学习 学到了 。。。 楼上的大佬真的厉害,学到了! 白two 发表于 2021-8-18 19:48
抱歉,之前没看题,回答错了,补了好久的链表再决定回答该题,
首先,num1 和 num2 要先逆向切片才能相 ...
res = ListNode(0)
pPre = res //这句是不是多余的啊
for i in num3:
new = ListNode(int(i))
pPre.next = new
pPre = new
return res.next
有点不懂,为啥最后返回res.next是正确值关于链表的知识在哪里啊!!python里面好像没有学过 青雨V1 发表于 2021-8-21 11:14
res = ListNode(0)
pPre = res //这句是不是多余的啊
for i in num3: ...
这句没多余,因为 python 好像没办法分配内存地址,所以得需要一个临时节点来储存
res.next 是因为最开始 res 实例化时传了一个 0 进去,所以第一个节点是 0 ,不能要这个节点
关于链表的知识是数据结构里面的 白two 发表于 2021-8-21 21:31
这句没多余,因为 python 好像没办法分配内存地址,所以得需要一个临时节点来储存
res.next 是因为最 ...
好的 好的 ! 谢谢
页:
[1]