lintcode-167-链表求和
167-链表求和
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例
给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null
标签
链表 Cracking The Coding Interview 高精度
思路
遍历 2 个链表(即从各位开始进行加法),新建节点保存 2 个节点与上一位的进位 carry 的和,并重置 carry
需要注意的是,若链表最高位之和大于 10 ,需要再新建最高位节点
code
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:/*** @param l1: the first list* @param l2: the second list* @return: the sum list of l1 and l2 */ListNode *addLists(ListNode *l1, ListNode *l2) {// write your code hereListNode *head = new ListNode(0);ListNode *temp = head;int carry = 0;while (l1!= NULL && l2 != NULL) {int sum = l1->val + l2->val + carry;ListNode *node = new ListNode(sum % 10);carry = (sum >= 10);temp->next = node;l1 = l1->next;l2 = l2->next;temp = temp->next;}while (l1 != NULL) {int sum = l1->val + carry;ListNode *node = new ListNode(sum % 10);carry = (sum >= 10);temp->next = node;l1 = l1->next;temp = temp->next;}while (l2 != NULL) {int sum = l2->val + carry;ListNode *node = new ListNode(sum % 10);carry = (sum >= 10);temp->next = node;l2 = l2->next;temp = temp->next;}if (l1 == NULL && l2 == NULL && carry == 1) {ListNode *node = new ListNode(carry);temp->next = node;}return head->next;}
};
转载于:https://www.cnblogs.com/libaoquan/p/7276889.html
lintcode-167-链表求和相关推荐
- Lintcode 167. 链表求和 221. 链表求和 II 题解
167. 链表求和 描述 你有两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式返回和. 样例 给 ...
- lintcode_167. 链表求和
lintcode 167. 链表求和 描述:你有两个用链表代表的整数,其中每个节点包含一个数字.数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头.写出一个函数将两个整数相加,用链表形式 ...
- 面试题 02.05. 链表求和
面试题 02.05. 链表求和 给定两个用链表表示的整数,每个节点包含一个数位. 这些数位是反向存放的,也就是个位排在链表首部. 编写函数对这两个整数求和,并用链表形式返回结果. 示例: 输入:(7 ...
- 程序员面试金典 - 面试题 02.05. 链表求和
1. 题目 给定两个用链表表示的整数,每个节点包含一个数位. 这些数位是反向存放的,也就是个位排在链表首部. 编写函数对这两个整数求和,并用链表形式返回结果. 示例: 输入:(7 -> 1 -& ...
- LintCode 173:链表插入排序
描述 用插入排序对链表排序 样例 样例 1:输入: 0->null输出: 0->null样例 2:输入: 1->3->2->0->null输出 :0->1-& ...
- LintCode 207. 区间求和 II(线段树)
1. 题目 在类的构造函数中给一个整数数组, 实现两个方法 query(start, end) 和 modify(index, value): 对于 query(start, end), 返回数组中下 ...
- LintCode 1689. k求和III(递归)
1. 题目 给出 n 个正整数和整数 k 以及一个目标数字 target. 在 n 个数中找出 k 个奇数 或 k 个偶数 使得和为target,输出方案数 样例 1: 给出 `[1,2,3,4], ...
- lintcode 简单篇(二)
1.(41) 最大子数组 描述:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和. 注意事项:子数组最少包含一个数 样例:给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子 ...
- LeetCode——链表
LeetCode--链表 目录 概述 找出两个链表的交点 链表反转 归并两个有序的链表 从有序链表中删除重复节点 删除链表的倒数第n个节点 交换链表中的相邻节点 链表求和 回文链表 分隔链表 链表元素 ...
- LeetCode Hot100 ---- 链表专题专题
链表 力扣109:将有序链表转化为二叉搜素树 力扣141:环形链表判断是否有环 力扣142:环形链表检测入口位置 力扣143:重拍链表 力扣160:相交链表 力扣206:反转链表 力扣21:合并两个有 ...
最新文章
- python编程入门电子书下载-Python编程基础如何快速入门?“附电子书下载”
- noip2016 换教室
- 【Python】is 和 == 的区别
- sqlite数据库的基本增删改查操作
- Iterator模式
- dbgrid 获取前台页面参数
- Linux操作系统PS命令详细解析
- JAVA地址连接状态检测工具类
- 当当网推“搜索+个性化”
- 前言【高等数学教程(单变量微积分)】
- php递归5,5.5.1 PHP递归函数
- 直播送礼物html,哈你直播如何送礼物 哈你直播给主播送礼物步骤【详解】
- python-提取特征 特征选择
- 分享在实际项目中积累的硬件调试经验 - 调试方法,以及常见调试案例
- oracle判断不包含,oracle查询不含括号及不含指定字符的方法
- 澳大利亚莫纳什大学推出公开漏洞奖励计划
- 为什么z-index在众多标签中失效
- cesium--绘制多边形polygon
- 蓝桥杯 试题 B 既约分数
- Linux 远程桌面 速度快,虫洞TCP加速,提升远程桌面和SSH访问速度
热门文章
- *33.硬中断和软中断是什么?区别?
- 原理 msc_解析应用在气象站中的GPRS通信原理及优势
- android 发送前台广播,使用IntentService与BroadcastReceiver实现后台服务(Android7.0可用)...
- Eclipse搭建Mybatis框架
- MySQL查询输入三个数的和_mysql(三)(单表查询、select、where、聚合函数、count、sum、avg、MAX/MIN、分组查询、group by、having、limit)...
- 得到Android设备的唯一id
- 安装mysql为什么下载了很多_mysql下载与安装过程
- des vue 双倍长 解密_[转]单倍长密钥加密和双倍长密钥加密,银联直联终端62域难点详解...
- linux安全狗 nginx,linux 下 safedog 防护 Nginx
- pytorch 查看当前学习率_pytorch调整模型训练的学习率