public static ListNode insertionSortList(ListNode head){
		if(head == null || head.next == null) return head;
		ListNode resultLn= new ListNode(head.val);
		//异常处理
		
		ListNode point = head.next;
		
		//插入排序主体
		while(point != null){
			ListNode temp_result= resultLn;
    		ListNode temp_preresult=resultLn;
    		ListNode swap_point;
    		ListNode head_nextpoint= point.next;
			if(point.val < resultLn.val)
			{
			    swap_point=resultLn;
			    resultLn=point;
			    resultLn.next=swap_point;
			}
			else{
			    while(temp_result != null){
			    	//System.out.println(point.val);
    				if(temp_result.val > point.val){
    					swap_point =temp_result;
    					temp_preresult.next=point;
    					point.next=swap_point;
    					break;
    				}
    				if(temp_result.val <= point.val && temp_result.next == null)
    				{
    					temp_result.next=point;
    					point.next=null;
    					break;
    				}
    				temp_preresult=temp_result;
    				temp_result = temp_result.next;
    			}
    			
    		}
    		point = head_nextpoint;
		}
		
		return resultLn;
	}