链表求和
2016-01-16 00:59
316 查看
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中
样例
给出两个链表
相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例
给出两个链表
3->1->5->null和
5->9->2->null,返回
8->0->8->null
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { /** * @param l1: the first list * @param l2: the second list * @return: the sum list of l1 and l2 */ public ListNode addLists(ListNode l1, ListNode l2) { // write your code here if(l1 == null) return l2; if(l2 == null) return l1; ListNode result = null; ListNode pNode = null; ListNode pNext = null; ListNode p = l1; ListNode q = l2; int up=0; while(p!=null&&q!= null){ pNext = new ListNode(p.val+q.val +up); up = pNext.val/10; pNext.val = pNext.val%10; if(result == null){ result = pNode = pNext; } else{ pNode.next = pNext; pNode = pNext; } p = p.next; q = q.next; } while(p!= null){ pNext = new ListNode(p.val + up); up = pNext.val/10; pNext.val = pNext.val%10; pNode.next = pNext; pNode = pNext; p = p.next; } while(q!= null){ pNext = new ListNode(q.val + up); up = pNext.val/10; pNext.val = pNext.val%10; pNode.next = pNext; pNode = pNext; q = q.next; } if(up!= 0){ pNext = new ListNode(up); pNode.next = pNext; } return result; } }
相关文章推荐
- BZOJ3140 HNOI2013消毒
- BZOJ3140 HNOI2013消毒
- 快速掌握Lua 5.3 —— 函数
- hdoj-2049(不容易系列之(4)——考新郎)(全错位排列+排列组合)
- memcache
- MySQL详解--锁
- 【Go学习笔记】Hello Go!
- 复习 C++ 中类的函数指针
- G面经prepare: Friends Recommendation
- quick-cocos2dx-lua之精灵移动后的回调函数
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
- 对称加密算法DES,3重DES,TDEA,Blowfish,RC5,IDEA,AES。
- iOS小工具
- 万万没想到,公有云离中国影视特效渲染还有5年
- maven使用
- mysql概要(九)字符集和校对集
- 优秀前端工程师应该掌握的内容(转自:github)
- python学习笔记-Day11--paramiko
- BZOJ3139 HNOI2013比赛 (搜索)
- BZOJ3139 HNOI2013比赛 (搜索)