package com.JackChen.leetCode.Day1;
import java.util.Scanner;
public class AddTwoNumber {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String firstInput = scanner.nextLine();
String secondInput = scanner.nextLine();
ListNode node1 = creatListNode(firstInput);
ListNode node2 = creatListNode(secondInput);
print(addTwoNumbers(node1, node2));
}
}
private static ListNode addTwoNumbers(ListNode node1, ListNode node2) {
ListNode node = new ListNode();
ListNode cur = node;
int temp = 0;
while(node1 != null || node2 != null) {
int val1 = node1 == null ? 0 : node1.val;
int val2 = node2 == null ? 0 : node2.val;
int sum = val1 + val2 + temp;
temp = sum/10;
cur.next = new ListNode(sum%10);
cur = cur.next;
node1 = node1 == null ? null : node1.next;
node2 = node2 == null ? null : node2.next;
}
if (temp != 0) {
cur.next = new ListNode(temp);
}
return node.next;
}
private static ListNode creatListNode(String input) {
ListNode temp = new ListNode();
ListNode node = temp;
String[] arrays = input.split(" ");
for (int i = 0; i < arrays.length; i++) {
temp.next = new ListNode(Integer.parseInt(arrays[i]));
temp = temp.next;
}
return node.next;
}
public static void print(ListNode node) {
while(node != null) {
System.out.print(node.val);
node = node.next;
}
}
public static class ListNode{
int val;
ListNode next;
ListNode() {}
ListNode(int val){
this.val = val;
}
ListNode(int val, ListNode next){
this.val = val;
this.next = next;
}
}
}