private ListNode Merge(ListNode l1, ListNode l2) {
    	ListNode head = new ListNode(-1);
    	ListNode idx = head;
    	while (l1 != null && l2 != null)
    	{
    		if (l1.val < l2.val)
    		{
    			idx.next = l1;
    			l1 = l1.next;
    		}
    		else
    		{
    			idx.next = l2;
    			l2 = l2.next;
    		}
    		idx = idx.next;
    	}
    	
    	if (l1 != null)
    		idx.next = l1;
    	else
    		idx.next = l2;
    		
		return head.next;
	}