首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LeetCode 445. 两数相加 II(链表大数加法)

LeetCode 445. 两数相加 II(链表大数加法)

作者头像
Michael阿明
发布2020-07-13 16:31:06
发布2020-07-13 16:31:06
1.1K0
举报

1. 题目

给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。

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

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

代码语言:javascript
复制
示例:

输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出: 7 -> 8 -> 0 -> 7

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先将链表转成字符串,对齐两个字符串(短的前面加 ‘0’ )
  • 用字符串加法,得到新的字符串
  • 把新的字符串输出链表
代码语言:javascript
复制
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        string n1, n2, s;
        //链表转字符串
        while(l1 && l2)
        {
            n1.push_back(l1->val+'0');
            l1 = l1->next;
            n2.push_back(l2->val+'0');
            l2 = l2->next;
        }
        if(l1)
            while(l1)
            {
                n1.push_back(l1->val+'0');
                l1 = l1->next;
                n2.insert(0,"0");
            }
        if(l2)
            while(l2)
            {
                n2.push_back(l2->val+'0');
                l2 = l2->next;
                n1.insert(0,"0");
            }
        //字符串大数加法
        int i, bit, carry = 0, sum;
        for(i = n1.size()-1; i >= 0; --i)
        {
            sum = n1[i]-'0'+n2[i]-'0'+carry;
            bit = sum%10;
            carry = sum/10;
            s.push_back(bit+'0');
        }
        if(carry)
            s.push_back(carry+'0');//低位在前
        //字符串输出链表
        ListNode *head = NULL, *node;
        for(i = 0; i < s.size(); ++i)
        {
            node = new ListNode(s[i]-'0');
            node->next = head;
            head = node;
        }
        return head;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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