2. 两数相加-leetCode&python

1、题目:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例1:
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

2、代码

class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        循环两个链表,记录进位,最终返回结果
        """
        cur=0
        n1,n2=l1,l2
        head=ListNode()
        node=head
        while n1 or n2 or cur:
            if n1:
                cur+=n1.val
                n1=n1.next
            if n2:
                cur+=n2.val
                n2=n2.next
            node.next=ListNode(cur%10)
            node=node.next
            cur//=10
        return head.next

3、示例

    s=Solution()
    l1=ListNode();#l1:[2,4,3]
    l1.val=2; l1.next=ListNode(4);l1.next.next=ListNode(3)
    l2 = ListNode()#l2:[5, 6, 4]
    l2.val=5;l2.next=ListNode(6);l2.next.next=ListNode(4)
    res=s.addTwoNumbers(l1=l1,l2=l2)
    print(res)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容