[Leetcode] Add Two Numbers
2015-08-12 20:15
309 查看
数字表示为链表的格式,需要注意的几个地方:
一、在计算过程当中要注意进位问题,刚开始的进位为0,后面进位要在计算过程当中进行更新。
二、如果某个数字的list比较长,那么需要在最后将其加上
三、最后如果进位不是零,说明需要额外增加一位
代码如下:
一、在计算过程当中要注意进位问题,刚开始的进位为0,后面进位要在计算过程当中进行更新。
二、如果某个数字的list比较长,那么需要在最后将其加上
三、最后如果进位不是零,说明需要额外增加一位
代码如下:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1==null||l2==null) return l1==null?l2:l1; int pre = 0; ListNode newhead=null; ListNode prenode=null; while(l1!=null && l2!=null){ int sum = pre + l1.val+ l2.val; ListNode tmp = new ListNode(sum%10); pre=sum/10; if(newhead==null){ newhead=tmp; prenode=tmp; }else{ prenode.next=tmp; prenode=tmp; } l1=l1.next; l2=l2.next; } ListNode leftnode= null; if(l1==null)leftnode=l2; else leftnode=l1; while(leftnode!=null){ int sum=pre+leftnode.val; ListNode tmp = new ListNode(sum%10); prenode.next=tmp; prenode=tmp; pre=sum/10; leftnode=leftnode.next; } if(pre!=0){ ListNode tmp =new ListNode(pre); prenode.next=tmp; tmp.next=null; } return newhead; } }
相关文章推荐
- Android LayoutCast 初探
- python中的map、filter、reduce函数
- 客户端与服务器数据传输的两种方式
- eclipse里配置maven
- mahout的安装,配置及聚类测试
- dfs+剪枝 poj1011
- 2014华为机试题
- the steps that may be taken to solve a feature selection problem:特征选择的步骤
- MyEclipse2014安装svn插件的方式:
- java Http编程小结
- 2015/08/12/HTTPURL中GET和POST/HTTPClient中的GET和POST
- 多线程程序跑久了效率下降分析
- Session的生命周期
- 一个感染性木马病毒分析(三)--文件的修复
- java基础------数组
- 八 理解各种不同含义的new和delete
- JavaScript基础学习之-JavaScript权威指南-第二章词法结构
- 金字塔形的存储设备,操作系统的抽象概念
- JavaScript基础学习之-JavaScript权威指南-第二章词法结构
- [Leetcode] Two Sum