给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

针对该题目的描述,即两个链表两两数值相加,同时考虑是否会产生进位的可能。
这里使用的方法是重新创建一个临时头节点,用来作为新节点的头节点。

实现如下:

ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {if (l1 == NULL) return l2;if (l2 == NULL) return l1;//新的头节点ListNode *p = new ListNode(0);ListNode *new_head = p;//临时头节点int carry = 0;while(l1 || l2 ) {int x = (l1 == NULL)? 0 : l1->val;int y = (l2 == NULL)? 0 : l2->val;int sum = x + y + carry;carry = sum / 10;sum = sum % 10;//每当获取到一个数值,即可创建一个新节点并插入到临时头节点之后new_head -> next = new ListNode(sum);//临时头节点向后移动new_head = new_head -> next;if (l1) {l1 = l1 -> next;} if (l2) {l2 = l2 -> next;}}//当有进位时,增加最后一个进位节点if (carry == 1){new_head -> next = new ListNode(carry);}return p->next;
}

leetcode-2 两数相加相关推荐

  1. [链表遍历|模拟] leetcode 2 两数相加

    [链表遍历|模拟] leetcode 2 两数相加 1.题目 题目链接 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果 ...

  2. 20200114:(leetcode)两数相加

    两数相加 题目 主要思路 代码实现 题目 注意点:不以0开头 主要思路 逐个相加即可,注意需要逆序加,注意进位即可: 由于数字是个位数的,因此进位只有可能是0或者1: 注意定义的有参构造器. 代码实现 ...

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

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

  4. LeetCode 2 两数相加

    给定两个非空链表来代表两个非负数,位数按照逆序方式存储,它们的每个节点只存储单个数字.将这两数相加会返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 - ...

  5. LeetCode 2 两数相加(链表)

    题目要求: 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入 ...

  6. LeetCode:2. 两数相加(中等)

    2. 两数相加(中等) 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 把俩个链表对应位相加,如果大于等于10,对10取余,小于10,直接得到这一位 解题过程存在这样几个问题: 1.进行循环 ...

  7. leetcode算法—两数相加 Add Two Numbers

    关注微信公众号:CodingTechWork,一起学习进步. 题目 Add Two Numbers: You are given two non-empty linked lists represen ...

  8. leetcode —— 2. 两数相加 (对于链表更新的细节)

    给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...

  9. leetcode 2. 两数相加

    难度:中等 频次:72 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. ...

  10. 力扣(Leetcode)-2. 两数相加

    描述 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. 你可以假设除了数字 ...

最新文章

  1. java frame 不显示_win7系统下eclipse不显示JFrame界面的解决方法
  2. JavaScript获取样式值的几种方法学习总结
  3. Python 调试:step into/step out/step over 的区别
  4. Seata RPC 模块的重构之路
  5. python装饰器调用顺序_聊一聊Python装饰器的代码执行顺序
  6. STM32 使用片外外扩内存调试
  7. 爬取博主所有文章并保存到本地(.txt版)--python3.6
  8. PostgresException: 42883: function ifnull(integer, integer) does not exist
  9. 《信息安全系统设计基础》第六周学习总结
  10. 【数字信号调制】基于BPSK实现信号调制和解调含Matlab源码
  11. Yolov4部署到ZYNQ系列1-USB转UART驱动不在COM和LPT显示问题的解决方案
  12. 流体力学基础——粘性
  13. 上楼梯(递归和迭代的对比)
  14. 如何度过有用的每一天
  15. 键盘弹不出来情况(一)
  16. 局域网中的每台计算机主机扩展槽,计算机导论选择题
  17. 【C++ Primer 学习笔记】: 容器和算法之【泛型算法】
  18. 对批处理、多道操作系统的理解
  19. 输出自己的姓名python_【Python编程:显示自己的的姓名和学号,并将学号各位数字相加求和,并显示.】...
  20. 图像处理方面的sci期刊_图像处理的sci期刊有哪些

热门文章

  1. Newtonsoft.Json文件错误
  2. 石英晶体振荡器的结构
  3. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
  4. python3-pwntools教程_python的pwntools工具的日常使用
  5. 目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用
  6. 安徽全国计算机缴费,全国计算机等级考试3月报名 安徽首次网上报名缴费
  7. php mysql函数未定义,PHP MySQLi未定义的方法错误
  8. 王建春计算机应用基础,计算机应用基础(本)教学指南.pdf
  9. python连接oracle数据库_Python连接oracle数据库 例子一
  10. python编译环境搭建_python开发环境搭建