2. 两数相加-leetCode&python

2022-11-09  本文已影响0人  冷多多

1、题目:

给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

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):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        a=0;b=0;i=1;j=1
        while l1:
            a=a+i*l1.val;i=i*10;l1=l1.next
        while l2:
            b=b+j*l2.val;j=j*10;l2=l2.next
        num=a+b;
        res=tree=ListNode(0);
        if num==0:
            res.next=ListNode(0)
        while num>0:
            tnode=num%10;num=num//10
            tree.next=ListNode(tnode);
            tree=tree.next
        return res.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)
上一篇 下一篇

猜你喜欢

热点阅读