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

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

进阶:

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

示例:

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

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        stack<int> s1, s2;
        while (l1) {
            s1.push(l1->val);
            l1 = l1->next;
        }
        while (l2) {
            s2.push(l2->val);
            l2 = l2->next;
        }
        int sum = 0;
        ListNode *res = new ListNode(0);
        while (!s1.empty() || !s2.empty()) {
            if (!s1.empty()) {sum += s1.top(); s1.pop();}
            if (!s2.empty()) {sum += s2.top(); s2.pop();}
            res->val = sum % 10;
            ListNode *head = new ListNode(sum / 10);
            head->next = res;
            res = head;
            sum /= 10;
        }
        return res->val == 0 ? res->next : res;
    }
};

445.两数相加II相关推荐

  1. 445. 两数相加 II golang

    题目 两数相加 II 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零 ...

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

    1. 题目 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进 ...

  3. leetcode-445. 两数相加 II

    给你两个 非空 链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储一位数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进阶: 如 ...

  4. 【数据结构与算法】之深入解析“两数相加II”的求解思路与算法示例

    一.题目要求 给你两个非空链表来代表两个非负整数,数字最高位位于链表开始位置,它们的每个节点只存储一位数字,将这两数相加会返回一个新的链表. 可以假设除了数字 0 之外,这两个数字都不会以零开头. 示 ...

  5. leetcode445. 两数相加 II

    给你两个 非空 链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储一位数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进阶: 如 ...

  6. Leetcode刷题笔记之445. 两数相加Ⅱ

    原题 给你两个 非空 链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储一位数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 进阶 ...

  7. 力扣每日一题——两数相加II

    发现做的题难度始终不高,今天Leecode给了一个稍微难一点的题目.(前两天没更是因为去拔牙了~~>_<~~) 给你两个 非空 链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每 ...

  8. leetcode算法题--两数相加 II

    原题链接:https://leetcode-cn.com/problems/add-two-numbers-ii/ 栈 ListNode* addTwoNumbers(ListNode* l1, Li ...

  9. leetcode链表中的两数相加问题

    2. 两数相加 找出两个链表中较长的链表,原地修改后,作为最后的返回结果 两个链表从前往后遍历,考虑进位,直到短链表结束. 将长链表数值放入结果(考虑进位). 考虑是否需要额外增加一个结点来放进位 c ...

  10. leetcode 两数相加c++_167. 两数之和 II - 输入有序数组

    167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1和 index2,其中 index1必须小 ...

最新文章

  1. GridSearchCV和交叉熵
  2. [转载]QQ空间技术架构之深刻揭密
  3. 我想重构网站的前端!不,你不想....
  4. 从零开始学前端:伪元素和盒子模型 --- 今天你学习了吗?(CSS:Day13)
  5. 字节跳动 | 机器学习与推荐算法工程师培养计划
  6. Linux命令行手动配置无线wiff网络 iwconfig
  7. 特种作业2021年电力电缆考试题库
  8. 测试方案/测试计划/测试报告
  9. 改变字体大小的媒体查询代码封装
  10. 语音系统智能AI机器人AI源码营销机器人电销机器人智能电话机器人拨号机器人语音机器人空号识别FreeSWITCH呼叫中心中间ipbxIPBX科大识别阿里识别语音识别语音翻译
  11. python学习方法总结(内附python全套学习资料)
  12. QScrollArea 动态添加控件问题
  13. model.train()与model.eval()的用法
  14. 服务器性能监控之New Relic 入门教程
  15. 如何用【测试思维】做“支付功能”测试?
  16. 市值暴跌7成,马斯克急了:特斯拉是最有价值的公司!
  17. canvas绘制地球围绕太阳转、月球围绕地球转
  18. 雷赛dmc2410控制卡,驱动器 光栅 加电机
  19. [译]Windows 古僻汉字输入方法
  20. 中国卫生产业期刊发表

热门文章

  1. LeetCode(2) 两数相加递归解法,速度最快,内存消耗最小
  2. WPF:更好得理解对话框和ShowDialog方法 .
  3. Node Stream 入门与深入
  4. 【转】Ubuntu 16.04安装配置TensorFlow GPU版本
  5. 【译文】Nodejs官方文档(Part 3 断言测试)
  6. 集合框架(数据结构之栈和队列)
  7. C#JSON格式数据的转换
  8. zabbix安装配置
  9. Java CopyOnWrite容器
  10. 向博客园提交了MVP申请