2. 两数相加

2. 两数相加,第1张

题目

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

思路

python

class Solution:
    def twosum(self,l1,l2):
        temp=ListNode(0)
        l3=temp
        a=0
        while l1!=None or l2!=None or a!=0:
            if l1!=None:
                a+=l1.value
                l1=l1.next
            if l2!=None:
                a+=l2.value
                l2=l2.next
            temp.next=ListNode(a%10)
            temp=temp.next
            a=a//10
        return l3.next

        

c++

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *head = nullptr, *tail = nullptr;
        int carry = 0;
        while (l1 || l2) {
            int n1 = l1 ? l1->val: 0;
            int n2 = l2 ? l2->val: 0;
            int sum = n1 + n2 + carry;
            if (!head) {
                head = tail = new ListNode(sum % 10);
            } else {
                tail->next = new ListNode(sum % 10);
                tail = tail->next;
            }
            carry = sum / 10;
            if (l1) {
                l1 = l1->next;
            }
            if (l2) {
                l2 = l2->next;
            }
        }
        if (carry > 0) {
            tail->next = new ListNode(carry);
        }
        return head;
    }
};


 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/915927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存