青雨V1 发表于 2021-8-17 17:07:41

关于力扣两数之和!!!求指教!

本帖最后由 青雨V1 于 2021-8-17 17:42 编辑

不知道 这样填写错在哪里额

白two 发表于 2021-8-17 22:44:29

num1,num2要先逆向切片,再相加,return的结果也要是列表

不大不小甲鱼 发表于 2021-8-18 08:43:00

6666

lgh202020 发表于 2021-8-18 15:43:20

num1,num2要先逆向切片,再相加,return的结果也要是列表

Kayko 发表于 2021-8-18 17:19:09

{:10_266:}

懒狗李 发表于 2021-8-18 19:32:07

{:10_254:}

白two 发表于 2021-8-18 19:48:15

抱歉,之前没看题,回答错了,补了好久的链表再决定回答该题,

首先,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

附上结果图:

还能踢两年 发表于 2021-8-18 19:57:59

好的

burntlime 发表于 2021-8-18 20:31:45

学习

说与山鬼听os 发表于 2021-8-19 13:44:43

学到了

cheerlye 发表于 2021-8-19 14:20:18

。。。

隐市仙 发表于 2021-8-19 16:01:02

楼上的大佬真的厉害,学到了!

青雨V1 发表于 2021-8-21 11:14:09

白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里面好像没有学过

白two 发表于 2021-8-21 21:31:05

青雨V1 发表于 2021-8-21 11:14
res = ListNode(0)
      pPre = res         //这句是不是多余的啊
      for i in num3: ...

这句没多余,因为 python 好像没办法分配内存地址,所以得需要一个临时节点来储存
res.next 是因为最开始 res 实例化时传了一个 0 进去,所以第一个节点是 0 ,不能要这个节点
关于链表的知识是数据结构里面的

青雨V1 发表于 2021-8-22 08:38:18

白two 发表于 2021-8-21 21:31
这句没多余,因为 python 好像没办法分配内存地址,所以得需要一个临时节点来储存
res.next 是因为最 ...

好的 好的 ! 谢谢
页: [1]
查看完整版本: 关于力扣两数之和!!!求指教!