leetcode:2.两数相加

本文提供了一种解决LeetCode上经典题目“两数相加”的算法思路,使用迭代方法并记录进位,提供了C++和Python3两种语言的实现代码。

链接:https://leetcode-cn.com/problems/add-two-numbers/`
迭代即可,记录一下进位。
C++:

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *head = new ListNode(0); //哨兵节点,用于返回答案
        ListNode *curr = head;
        int carry = 0;  //进位
        while(l1||l2)
        {
            int x = (l1)?l1->val:0;
            int y = (l2)?l2->val:0;
            int sum = carry+x+y;
            carry = sum/10;
            curr->next = new ListNode(sum%10);
            curr =curr->next;
            if(l1)
                l1 = l1->next;
            if(l2)
                l2 = l2->next;
        }
        if(carry>0)
            curr->next = new ListNode(1);
        return head->next;
    }

Python3:

def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        head = ListNode(0)
        curr = head
        carry = 0
        while(l1 or l2):
            x = l1.val if l1 else 0
            y = l2.val if l2 else 0
            sum = carry+x+y
            carry = sum//10
            curr.next = ListNode(sum%10)
            curr = curr.next
            if(l1):
                l1 = l1.next
            if(l2):
                l2 = l2.next
        if(carry>0):
            curr.next = ListNode(1)
        return head.next
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值