美文网首页
一道关于链表的题

一道关于链表的题

作者: 天秤座的橘子 | 来源:发表于2020-03-20 23:01 被阅读0次

题目简述:【其实就是从leetcode里面抄过来的题】

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807


解题思路:

如果链表但长度是给定的话,我们可以将链表里的数字拿出来组合成一个数字来进行相加,相加之后对于输出的结果,通过/10的方式依次取出。但是链表的长度是未知的,所以我们不能用这么取巧的方式来解题。【个人想法,我看到有个大神确实这样做了,是我狭隘了,其实是一样的递归思路】

其实我看到之后也是没思路的,是参考了大家的解题方法,现在只是为了记录一下,加深自己的印象。

还是一位一位去相加,如果有进位就同步到下一位上,由于链表可以通过.next拿到下一个节点的值,所以我们可以用到递归,只用写第一位的加法规则,每一个next都进行套用,最后输出结果。


链表的定义:

链表是由一个个节点组合起来的一个数据链,抽象出来的结构如下图,转自https://www.cnblogs.com/king-ding/p/pythonchaintable.html。这里十分详细,还讲了列表的创建和操作,十分适合我这种小白0 0


代码实现:

```

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, x):

#         self.val = x

#         self.next = None

class Solution:

    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:

        return self.addtwo(l1,l2)

    def addtwo(self,l1,l2,sum=0):

        if not l1 and not l2 and sum==0:

            return None       #这里一定不能写成NULL

        l1_val = l1.val if l1 else 0   #这里的三目运算符,意思是如果l1不为空,就取它的值,否则就是0

        l2_val = l2.val if l2 else 0

        l1_next= l1.next if l1 else None #这里是取下一个节点

        l2_next= l2.next if l2 else None

        sum1 = l1_val + l2_val + sum

        if sum1 >= 10:

            result = ListNode(sum1 -10 )

            result.next = self.addtwo(l1_next,l2_next,1)

        else :

            result = ListNode(sum1)

            result.next = self.addtwo(l1_next,l2_next)

       return result

```


相关文章

  • 一道关于链表的题

    题目简述:【其实就是从leetcode里面抄过来的题】 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的...

  • 25.K 个一组翻转链表

    自己解法 这个题是最近做过最难的一道链表题,链表题最关键的就是前置节点、后置节点的维护,这题真的被绕晕了,自己憋了...

  • Leetcode JS单链表实现

    刷题时遇到关于单链表的题,不知道单链表是怎么生成的,可以参照如下代码 输出结果:

  • leetcode链表之反转链表

    本文主要有三道题,都是关于反转链表的算法题,由浅入深。文章出现的代码都是python3 206、反转链表[http...

  • 反转链表

    反转链表是一道有关链表的训练题,虽然比较简单,但是比较能训练思维。反转链表的题目比较自然的思维是用迭代,比较容易实...

  • 判断链表中的环Floyd

    问题源于 leetcode 中的一道题:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 nul...

  • 2018年3月24日计划

    1.学习PyQuery的基本用法。2.学习单链表。3.刷题一道。

  • 链表专题 简单题

    leetcode链表题,简单题也是很重要的,复杂链表题也就是简单链表题的组合。简单题:237: 这道题思路有点不一...

  • leetcode第九十二题—反转链表 II

    又是一道升级题,还记得原来的翻转链表嘛,这个是要求指定m和n翻转链表。或许你忘了链表翻转怎么做,我编一个口诀:要问...

  • 2018-08-04

    链表反序 链表反序是笔试面试中常考的一道题,其实现并不难,但是往往手写却并不容易写出来,这里记录一下链表反序的实现...

网友评论

      本文标题:一道关于链表的题

      本文链接:https://www.haomeiwen.com/subject/vuzsyhtx.html