public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
		ListNode p1 = l1;
		ListNode p2 = l2;
		int incr = 0;
		ListNode ln = null;
		ListNode p = null;;
		while (p1 != null || p2 != null || incr != 0) {
			int sum = 0;
			if (null != p1) sum = sum + p1.val;
			if (null != p2) sum = sum + p2.val;
			sum = sum + incr;
			int val = sum % 10;
			incr = sum / 10; 
			ListNode tmp = new ListNode(val);
			if (null == ln) ln = tmp;
			if (null != p) { 
				p.next = tmp;
				p = tmp;
			} else {
				p = tmp;
			}
			if (null != p1) p1 = p1.next;
			if (null != p2) p2 = p2.next;
		}
		return ln;
	}