前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打卡群刷题总结0615——两数相加

打卡群刷题总结0615——两数相加

作者头像
木又AI帮
发布2020-06-17 17:19:56
2380
发布2020-06-17 17:19:56
举报
文章被收录于专栏:木又AI帮

题目:2. 两数相加

链接:https://leetcode-cn.com/problems/add-two-numbers

问题:

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807

解题:

1、循环。考虑几个问题:第i个元素是否存在;进位。

代码:

代码语言:javascript
复制
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        res = ListNode(0)
        node = res
        add = 0
        node1, node2 = l1, l2

        while node1 or node2:
            # node1不为空
            if node1:
                add += node1.val
                node1 = node1.next
            # node2不为空
            if node2:
                add += node2.val
                node2 = node2.next
            # 链表元素 & 进位
            node.next = ListNode(add % 10)
            add //= 10
            node = node.next

        # 最后一个进位
        if add:
            node.next = ListNode(1)

        return res.next

PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档