// import java.util.*;
// /* // * public class ListNode { // * int val; // * ListNode next = null; // * } // */
// public class Solution { // /** // * // * @param head1 ListNode类 // * @param head2 ListNode类 // * @return ListNode类 // */ // public ListNode addInList (ListNode head1, ListNode head2) { // // write code here // ListNode p1 = reverse(head1); // ListNode p2 = reverse(head2); // ListNode newHead = new ListNode(0); // ListNode p = newHead; // int carry = 0; // while (p1 != null || p2 != null || carry > 0) { // int x, y; // if (p1 == null) { // x = 0; // } else { // x = p1.val; // p1 = p1.next; // } // if (p2 == null) { // y = 0; // } else { // y = p2.val; // p2 = p2.next; // } // int add = x + y + carry; // p.next = new ListNode(add % 10); // p = p.next; // carry = add / 10; // } // return reverse(newHead.next); // }
// public ListNode reverse(ListNode head) { // ListNode pre = null; // ListNode next = null; // while (head != null) { // next = head.next; // head.next = pre; // pre = head; // head = next; // } // return pre; // } // } import java.util.*;
/*
- public class ListNode {
- int val;
- ListNode next = null;
- } */
public class Solution { /** * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // write code here StringBuilder s1 = new StringBuilder();
while(head1 != null){
s1.append(head1.val);
head1 = head1.next;
}
StringBuilder s2 = new StringBuilder();
while(head2 != null){
s2.append(head2.val);
head2 = head2.next;
}
int carry = 0;
int i = s1.length()-1;
int j = s2.length()-1;
StringBuilder arr = new StringBuilder();
while(i >= 0 ||j >= 0||carry != 0){
carry += i >= 0 ? s1.charAt(i)-'0' : 0;
carry += j >= 0 ? s2.charAt(j)-'0' : 0;
arr.append(carry % 10);
carry /= 10;
i--;
j--;
}
arr.reverse().toString();
int start = arr.charAt(0) == 0 ? 1 :0;
ListNode head = new ListNode(arr.charAt(start++)- '0');
ListNode p = head;
while(start < arr.length()){
ListNode node = new ListNode(arr.charAt(start ++) - '0');
p.next = node;
p = node;
}
return head;
}
}