对链表进行直接插入排序但是出现time limit exceeds的有关问题

对链表进行直接插入排序但是出现time limit exceeds的问题
对链表进行直接插入排序但是出现time limit exceeds的问题,比如当链表值为{1,1}时,请问哪边除了错
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode *insertionSortList(ListNode *head) {
    
          if(!head||!head->next) return head;//注意点1
          ListNode *InsertNode=head->next;
          ListNode *pre=head,*pNode=head;
          while(InsertNode!=NULL){
              while(!pNode&&pNode->val<=InsertNode->val)//找到第一个要插入的节点大pNode
              {
                  pre=pNode;
                  pNode=pNode->next;
              }
                if(pNode==NULL) return head;
           //   if(pNode==NULL) goto label;

              ListNode *Insert_Next=InsertNode->next;//保存要插入数据的下一个节点
              //注意点2
              if(pNode==head)//如果比头结点小,即插入到头前面
              { 
                  
                  InsertNode->next=head;
                  head=InsertNode;
                  InsertNode=Insert_Next;
              }
              else                    //插入节点
              {
              InsertNode->next=pNode;
              pre->next=InsertNode;
              InsertNode=Insert_Next;
              }
          }
             return head;
        
    }
};

------解决方案--------------------
囧,leetcode吧,感觉推荐你自己找出原因,这样自己收获更多,我觉得我是废话。。。找个例子跑一下不就可以嘛
------解决方案--------------------
楼主,要多多锻炼大脑的裸机能力啊对链表进行直接插入排序但是出现time limit exceeds的有关问题