import java.util.*;
public class Solution {
    public ListNode addInList (ListNode head1, ListNode head2) {
        Stack<ListNode> stack1=new Stack<>();
        Stack<ListNode> stack2=new Stack<>();
        while(head1!=null){
            stack1.push(head1);
            head1=head1.next;
        }
        while(head2!=null){
            stack2.push(head2);
            head2=head2.next;
        }

        int cause=0;
        ListNode dummy=null;
        int value1=0;
        int value2=0;
        while(!stack1.isEmpty() || !stack2.isEmpty()){

            if(!stack1.isEmpty())
                 value1=stack1.pop().val;
            else
                 value1=0;
            if(!stack2.isEmpty())
                 value2=stack2.pop().val;
            else
                 value2=0;

            int sum=value1+value2+cause;
            cause=sum/10;
            ListNode res=new ListNode(sum%10);
            res.next=dummy;
            dummy=res;
        }
        return dummy;

    }
}