[leetcode]Add Two Numbers
来源:程序员人生 发布时间:2014-12-13 08:58:50 阅读次数:2720次
问题描写:
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
基本思路:
此题很简单,1位1位加便可。
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution { //JAVA
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode rl1 = l1;
ListNode rl2 = l2;
ListNode result = new ListNode(0);
ListNode restmp = result;
int res = 0;
while(rl1 !=null || rl2 != null){
int num;
if(rl1 == null)
num = rl2.val + res;
else if(rl2 == null)
num = rl1.val + res;
else num = rl1.val + rl2.val +res;
if(num/10 >0)
{
res = 1;
num = num%10;
}
else
{
res = 0;
}
ListNode tmp = new ListNode(num);
restmp.next = tmp;
restmp = tmp;
if(rl1 != null)
rl1 = rl1.next;
if(rl2 != null)
rl2 = rl2.next;
}
if(res == 1){
ListNode tmp = new ListNode(1);
restmp.next = tmp;
restmp = tmp;
}
return result.next;
}
}
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠