LeetCode 2.add two numbers
时间:2019-01-19
本文章向大家介绍LeetCode 2.add two numbers,主要包括LeetCode 2.add two numbers使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目
两个非空链表代表两个非负实数,每一位按照倒序存储在链表的每个节点中,把两个数相加把结果作为链表返回。
思路
首先题目给了链表节点的数据结构,直接拿来用就行。
首先建立一个结果链表,先建立一个0节点当做表头。加法规则为对应的位相加,有进位加进位,和大于10进一位,小于10不进位。于是需要两个指针分别指示要进行加法的位,一个指针指示结果链表的位置。然后一个变量存进位。
然后开始进入循环,循环的判断条件很重要,若是条件为两个指针都不为空,则需要考虑较长的链表需要接到结果链表后面,细想的话短链表加到尽头最后的进位要加到长链表上,较为麻烦,若是条件为两个指针不都为空,即只要有一个不为空就继续加法,那么把短链表的相应位置看成0,加到尽头的进位也不需要考虑了,因此条件应设置为或,即只要有一个不为空就循环。
循环内开始进行加法,考虑到可能有链表的节点为空,所以在取值的时候要进行判断。两个加数定义两个变量,若加数节点为空,则变量的值为0,不为空则为对应的值,定义sum为两个加数相加再加上进位,相加的结果又会产生进位,进位的值在这里要小心,若sum>=10,则进位值为sum/10,若sum<10,则进位为0,这里判断一定要写完整。错误写法:if(sum >9 ) carry=sum/10;若只这么写,那么当sum<10时候,carry会继承上一次的值。然后存储当前位的值。新建一个节点并赋值,然后指针后移,这里要斟酌两者的顺序,这题这样做较为合适。然后两指针后移,后移要做判断,如果当前指针指向为null,则不后移。
最后考虑边界情况,例如5+5=10那么会多产生一位进位,若不进行处理,得到的结果将为0,所以最后要加上判断,若进位>0,则加入一个节点,值为进位的值。然后返回头结点。
- 看我教你如何修改QQ安装包实现绕过QQ语音红包验证来领红包
- “奇幻熊”(APT28)组织最新攻击
- GDB调试CVE-2018-5711 PHP-GD拒绝服务漏洞
- 高效与争议并存:大规模自动化渗透工具AutoSploit
- Android应用测试速查表
- ADB配置提权漏洞(CVE-2017-13212)原理与利用分析
- Fuzz自动化Bypass软WAF姿势
- Web黑盒渗透思路之猜想
- ZZCMS v8.2 最新版SQL注入漏洞
- 一款轻量级Web漏洞教学演示系统(DSVW)
- 使用Burpsuite代理和pypcap抓包进行抢红包的尝试
- 基于WAVSEP的靶场搭建指南
- 【干货】大数据量下,58同城mysql实践!
- 如何预先处理电影评论数据以进行情感分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go 单元测试和性能测试
- 01 . etcd简介原理,应用场景及部署,简单使用
- GO 单例模式
- 关于本博客皮肤样式配置
- 03 . Go开发一个日志平台之Elasticsearch使用及kafka消费消息发送到Elasticsearch
- GO 匿名函数和闭包
- Nginx升级加固SSL/TLS协议信息泄露漏洞(CVE-2016-2183)和HTTP服务器的缺省banner漏洞
- GO中间件(Middleware )
- TomcatAJP文件包含漏洞及线上修复漏洞
- golang new和make的区别
- Magicodes.IE之导入导出筛选器
- 界面酷炫,功能强大!这款 Linux 性能实时监控工具超好用!老斯机搞它!
- httprunner学习28-yaml文件 参数化读取 csv 文件字符串转 int
- 30个编程小技巧,提高代码性能
- httprunner学习27-参数关联时在 yaml 文件 int 和 str 数据类型转换