LeetCode - 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

思路:

就像做加法一样,记得进位和判断结尾

package list;

public class AddTwoNumbers {

public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode p
= new ListNode(0);
ListNode node
= p;
int sum = 0;
int carry = 0;
while (true) {
if (l1 != null && l2 != null) {
sum
= l1.val + l2.val + carry;
l1
= l1.next;
l2
= l2.next;
}
else if (l1 != null) {
sum
= l1.val + carry;
l1
= l1.next;
}
else if (l2 != null){
sum
= l2.val + carry;
l2
= l2.next;
}
else {
sum
= carry;
if (sum == 0)
break;
}

p.next
= new ListNode(sum % 10);
carry
= sum / 10;
p
= p.next;
}

return node.next;
}

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

 

本站声明
本文转载自:http://www.cnblogs.com/shuaiwhu/p/5028868.html     作者:Add Two Numbers - NULL00     发布日期:2015/12/08     本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。


 
© 2014-2017 ITdaan.com 粤ICP备14056181号