标签:tput single ati store span public blog number mono
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
Solution:
If the lengths of two linked list are different, then need to add 0s to the shorter one.
If the Lengths are same, but carry is 1 at the last node, also need to add 0 to both lists to add 1.
1 public class Solution { 2 public ListNode AddTwoNumbers(ListNode l1, ListNode l2) { 3 if(l1==null) 4 { 5 return l2; 6 } 7 if(l2== null) 8 { 9 return l1; 10 } 11 ListNode node1 = l1; 12 ListNode node2 = l2; 13 int carry = 0; 14 while(node1!=null || node2!=null) 15 { 16 17 int temp = node1.val; 18 node1.val = (node1.val +node2.val+carry)%10; 19 carry = (temp +node2.val+carry)/10; 20 if(node1.next == null && node2.next == null) 21 { 22 if(carry==1) 23 { 24 node1.next = new ListNode(0); 25 node2.next = new ListNode(0); 26 } 27 } 28 if(node1.next==null && node2.next!=null) 29 { 30 31 node1.next = new ListNode(0); 32 } 33 if(node2.next==null&& node1.next!=null) 34 { 35 node2.next = new ListNode(0); 36 } 37 38 node1= node1.next; 39 node2 = node2.next; 40 } 41 42 return l1; 43 44 } 45 }
标签:tput single ati store span public blog number mono
原文地址:http://www.cnblogs.com/MiaBlog/p/6096290.html