2. 两数相加

难度:中等

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

示例:

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

题目解析:

主要考虑两个问题,一个是两个链表长短不一样,另一个是最后的进位还存在,最后还需要构建一个节点存放

参考代码:

/*** 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) {if (l1 == NULL && l2 != NULL)return l2;if (l1 != NULL && l2 == NULL)return l1;if (l1 == NULL && l2 == NULL)return NULL;int temp = 0;//进位和ListNode* head = new ListNode(0);ListNode* pMove = head;while (l1 != NULL && l2 != NULL){temp += l1->val + l2->val;ListNode* new_node = new ListNode(temp % 10);pMove->next = new_node;pMove = pMove->next;temp /= 10;l1 = l1->next;l2 = l2->next;}while (l1 != NULL){temp += l1->val;ListNode* new_node = new ListNode(temp % 10);temp /= 10;pMove->next = new_node;pMove = pMove->next;l1 = l1->next;}while (l2 != NULL){temp += l2->val;ListNode* new_node = new ListNode(temp % 10);temp /= 10;pMove->next = new_node;pMove = pMove->next;l2 = l2->next;}if (temp > 0){ListNode* new_node = new ListNode(temp % 10);pMove->next = new_node;}return head->next;}
};

LeetCode-----第二题-----两数相加相关推荐

  1. python怎么设编程两个数相加时_黄哥Python, LeetCode 第二题两数相加代码

    来源力扣​leetcode-cn.com 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相 ...

  2. leetcode第一题两数相加

    leetcode两数相加: 提示: 问题描述: int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for (int ...

  3. leetCode刷题--两数相加

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

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

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

  5. leetcode算法题--两数相加

    题目地址:https://leetcode-cn.com/problems/add-two-numbers/ 用一个carry记下进位就行,像加法器的原理一样. ListNode* addTwoNum ...

  6. LeetCode题库第2题 两数相加

    两数相加 LeetCode题库第二题 两数相加 看完题目,就可以将题目抽象为三个指针,前两个指针是l1和l2,后一个指针是我们要求的,这三个指针同时移动,由于可能会产生进位,所以可以用一个变量来存储这 ...

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

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

  8. LeetCode实战:两数相加

    题目英文 You are given two non-empty linked lists representing two non-negative integers. The digits are ...

  9. 【LeetCode】2.两数相加

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

  10. leetCode刷题-第二题两数之和

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

最新文章

  1. 分布式事务+DDD+负载均衡+服务治理已撸!微服务不就这点事?
  2. 乌心工作!又被测试给搞了!!!
  3. Java编译那些事儿【转】
  4. 2020年第十五届全国大学生智能汽车竞赛浙江赛区比赛成绩分析
  5. android毛玻璃效果,Android 中实现毛玻璃效果
  6. html for 循环模板
  7. 产生线程安全的原因(1)(操作系统)
  8. 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
  9. P2P中的NAT穿越方案简介
  10. LeetCode 480. 滑动窗口中位数(大小堆升级版+set实现)
  11. 【Socket】关于socket长连接的心跳包
  12. 04737 c++ 自学考试2019版 第四章课后程序设计题1
  13. LINUX下定时备份MYSQL数据库SHELL脚本
  14. 编译器C-Free V352注册算法分析
  15. 解决Flex4 发布后访问 初始化极其缓慢的问题
  16. vscode输入特殊符号
  17. 基于Springboot的个人博客网站系统——可用于毕业设计(课程设计)
  18. Maya:绑定—机械臂动画
  19. 五、python-地图可视化篇(黑马程序猿-python学习记录)
  20. DELL R630升级BIOS固件和IDARC

热门文章

  1. 图像处理之EXIF信息
  2. CentOS7定制Gnome3外观
  3. ireport 实现动态合并单元格
  4. 华为Ruby语言需要去理解的东东
  5. 用MySQL后电脑频繁蓝屏_电脑容易蓝屏怎么办_电脑突然开始频繁蓝屏修复方法-win7之家...
  6. 如何修改echarts源码(其他框架也可适用)
  7. 火星探险问题 网络流
  8. Android虚拟机AVD has terminated
  9. js 骂人不带脏字 (!(~+[]) + {})[--[~+][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解...
  10. 怎么样才算是精通 C++?