力扣网解题(二 两数相加)
题目描述:
解题代码:
public class AddTwoNumbers {
public static class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
ListNode(int val, ListNode next) {
this.val = val;
this.next = next;
}
}
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int carry = 0;
int sum ;
ListNode result = new ListNode(-1);
while(l2 != null || l1 != null){
ListNode temp;
if(l1 == null){
sum = l2.val + carry;
}else{
if(l2 == null){
sum = l1.val + carry;
}else{
sum = l1.val + l2.val + carry;
}
}
temp = new ListNode(sum % 10);
carry = sum / 10;
ListNode temp1 = result;
while(temp1.next != null){
temp1 = temp1.next;
}
temp1.next = temp;
if(l1 != null){
l1 = l1.next;
}
if(l2 != null){
l2 = l2.next;
}
}
if(carry != 0){
ListNode temp;
temp = new ListNode(carry);
ListNode temp1 = result;
while(temp1.next != null){
temp1 = temp1.next;
}
temp1.next = temp;
}
return result.next;
}
public static void main(String[] args) {
ListNode n1 = new ListNode(1,new ListNode(1,new ListNode(3)));
ListNode n2 = new ListNode(9,new ListNode(7,new ListNode(6)));
ListNode result = addTwoNumbers(n1,n2);
while(result != null){
System.out.println(result.val);
result = result.next;
}
}
}