import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param l1 ListNode类 
     * @param l2 ListNode类 
     * @return ListNode类
     */
    public ListNode ListAdd (ListNode l1, ListNode l2) {
     	int carray = 0;
		ListNode head = new ListNode(0);
		ListNode pre = head;
		while(l1 != null || l2 != null || carray != 0) {
			int sum = carray;
			if(l1 != null) {
				sum += l1.val;
				l1 = l1.next;
			}
			if(l2 != null) {
				sum += l2.val;
				l2 = l2.next;
			}
			pre.next = new ListNode(sum%10);
			pre = pre.next;
			carray = sum/10;
			
		}
		return head.next;
    }
}