private ListNode merge2(ListNode l1, ListNode l2) {
		ListNode header = null;
		ListNode last = null;
		ListNode cur = null;
		ListNode n1 = l1;
		ListNode n2 = l2;
		if (n1 == null) {
			return n2;
		}
		if (n2 == null) {
			return n1;
		}
		while (n1 != null && n2 != null) {
			if (n1.val>n2.val) {
				cur = new ListNode(n2.val);
				n2 = n2.next;
			}else{
				cur = new ListNode(n1.val);
				n1 = n1.next;
			}
			if (last == null) {
				header = cur;
				last = cur;
			} else {
				last.next = cur;
				last = cur;
			}
		}
		if (n1 == null) {
			last.next = n2;
		} else if (n2 == null) {
			last.next = n1;
		}

		return header;
	}