Leetcode Exercise
2015-08-09 20:45
344 查看
Question:Add Two Numbers
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
Answer
/** * 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) { ListNode lNode=new ListNode(0); ListNode origin=lNode; int carry=0; while(l1!=null&&l2!=null){ if(l1.val+l2.val+carry<10){ lNode.val=l1.val+l2.val+carry; carry=0; }else{ lNode.val=(l1.val+l2.val+carry)%10; carry=1; } l1=l1.next; l2=l2.next; if(l1!=null&&l2!=null){ lNode.next=new ListNode(0); lNode=lNode.next; } } if(l1==null&&l2==null){ if(carry==0){ return origin; }else{ lNode.next=new ListNode(1); lNode=null; } } if(l1!=null){ lNode.next=new ListNode(0); lNode=lNode.next; while(l1!=null){ if(l1.val+carry<10){ lNode.val=l1.val+carry; carry=0; }else{ lNode.val=(l1.val+carry)%10; carry=1; } l1=l1.next; if(l1!=null){ lNode.next=new ListNode(0); lNode=lNode.next; } } if(carry==1){ lNode.next=new ListNode(1); lNode=null; } } if(l2!=null){ lNode.next=new ListNode(0); lNode=lNode.next; while(l2!=null){ if(l2.val+carry<10){ lNode.val=l2.val+carry; carry=0; }else{ lNode.val=(l2.val+carry)%10; carry=1; } l2=l2.next; if(l2!=null){ lNode.next=new ListNode(0); lNode=lNode.next; } } if(carry==1){ lNode.next=new ListNode(1); lNode=null; } } return origin; } }
相关文章推荐
- myql5.7.7优化配置参数
- Trie树 hdu3460 Ancient Printer
- 给dubbo接口添加白名单——dubbo Filter的使用
- 为别人撑伞(深度好文)
- JS将一个十进制转换成二进制
- java使用dbcp操作数据库的用法
- hdu 2874 lca-tarjan离线算法(模板)
- HDU 3478
- 第一章 绪论
- 高并发处理方案
- “||”操作符小用
- 队列笔记
- IM-即时通讯技术概述
- HDU 2444
- Android四大组件之三:ContentProvider数据共享
- unbuntu下如何更新adobe flash插件
- IM-即时通讯技术概述
- 协议详解3——IP
- PyQt5初级教程--PyQt5中的拖放[10/13]
- HDU 5366