鱼C论坛

 找回密码
 立即注册
查看: 3157|回复: 14

[已解决]关于力扣两数之和!!!求指教!

[复制链接]
发表于 2021-8-17 17:07:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

不知道 这样填写错在哪里额
最佳答案
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

附上结果图:
1.png

两数之和

两数之和
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-17 22:44:29 | 显示全部楼层

回帖奖励 +2 鱼币

num1,num2要先逆向切片,再相加,return的结果也要是列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 08:43:00 | 显示全部楼层

回帖奖励 +2 鱼币

6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-18 15:43:20 | 显示全部楼层

回帖奖励 +2 鱼币

num1,num2要先逆向切片,再相加,return的结果也要是列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 17:19:09 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-18 19:32:07 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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

附上结果图:
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-18 19:57:59 | 显示全部楼层

回帖奖励 +2 鱼币

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-18 20:31:45 | 显示全部楼层

回帖奖励 +2 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-19 13:44:43 | 显示全部楼层

回帖奖励 +2 鱼币

学到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 14:20:18 | 显示全部楼层

回帖奖励 +2 鱼币

。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-19 16:01:02 | 显示全部楼层

回帖奖励 +2 鱼币

楼上的大佬真的厉害,学到了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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里面好像没有学过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 ,不能要这个节点
关于链表的知识是数据结构里面的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的 好的 ! 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表