Leetcode-add-two-numbers
2016-07-24 16:53
330 查看
题目描述
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
求两个链表的数之和,仍然以链表形式保存。
思路:新建一个ListNode节点,然后赋给temp节点,变量tmp记录计算进位,当l1.next或者l2.next或者temp!=0的时候进入循环,如果l1不为空,说明l1链表有数,数值累加到tmp中,并且l1 = l1.next;接着l2的处理一样,tmp值加l2节点的值,l2往后移一个位置;计算出tmp后,新建节点new ListNode(tmp % 10),让temp.next指向该节点,同时tmp置为tmp/10。 最后返回最初定义的头节点的next节点。
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if(l1 == null)
return l2;
if(l2 == null)
return l1;
ListNode dummy = new ListNode(0);
ListNode temp = dummy;
int tmp = 0;
while(l1 != null || l2 != null || tmp != 0){
if(l1 != null){
tmp += l1.val;
l1 = l1.next;
}
if(l2 != null){
tmp += l2.val;
l2 = l2.next;
}
temp.next = new ListNode(tmp%10);
temp = temp.next;
tmp /= 10;
}
return dummy.next;
}
}
相关文章推荐
- CentOS6.5配置01 -- LAMP(appache,mysql,php)安装
- CSS3基础
- 仿乐透购彩app(6)
- HDU 2298 Toxophily
- SpringMVC学习之路
- KMP
- 定义和声明以及extern、static关键字
- ImageView ScaleType属性
- SQL 中的 TRIM 函数
- thinkphp集成系列之短信验证码、订单通知
- 134. Gas Station
- Mac安装MongoDB
- Iptables番外篇-构建网络防火墙
- 源码和手动安装apache及存放路径
- 动态规划(奇异状态):HNOI 2001 产品加工
- android BitMap回收
- IP、路由配置
- 转载 《Struts2返回JSON数据的具体应用范例》
- Java CountDownLatch 和 CyclicBarrier 使用
- hdoj5115【区间DP·基础】