时间复杂度:O(n),空间复杂度O(n) 
思路:将链表的值分别放到两个双端队列中,从后往前加(大数加法类似) 
将最后的结果拼接成新的链表;
public ListNode addInList (ListNode head1, ListNode head2) {
        // write code here
        LinkedList<Integer> list1 = new LinkedList();
        LinkedList<Integer>list2 = new LinkedList();
        ArrayList<Integer> res = new ArrayList();
        ListNode numpy = new ListNode(1);
        ListNode node = numpy;
      
        while(head1!=null){
            list1.add(head1.val);
            head1=head1.next;
        }
        while(head2!=null){
            list2.add(head2.val);
            head2=head2.next;
        }
        int targe = 0;
        int sum = 0;
        while(!list1.isEmpty()||!list2.isEmpty()){
            if(list1.isEmpty()){
                sum=list2.pollLast()+targe;
                
            }
            else if(list2.isEmpty()){
                sum=list1.pollLast()+targe;
            }
            else {
                sum = list1.pollLast()+list2.pollLast()+targe;
            }
            targe = 0;
            if(sum>=10){
                targe = 1;
                sum = sum-10;
            }
            res.add(sum);
        }
        if(targe==1){
            res.add(targe);
        }
        
        for(int i = res.size()-1;i>=0;i--){
            node.next = new ListNode(res.get(i));
            node=node.next;
        }
        return numpy.next;
    }