Last executed input: []


  • 0
    A

    Last executed input:[]

    /**
    问题1 带head节点指针编程很方便,不然很麻烦

    /
    struct ListNode
    insertionSortList(struct ListNode
    head) {
    //需要四个临时变量
    struct ListNode* begin=head; //有序数组中开始位置,计算带插入元素位置
    struct ListNode* end=head->next;//有序数组结束位置
    struct ListNode* curl=head->next->next;//无顺数组开始位置

    for(;curl!=NULL;curl=curl->next)
    {    
         
         
        //a>b
        if(curl->val > end->val)
        {   
            end=curl;//end超前走一步
            continue;
        }
        // 02不满足条件
        // 去除curl 重新连城成一个连表
       end->next=curl->next; 
      //curl插入到有序量表中[begin,end]
      //cur->next 位置发现了变化 end位置没有发生变化
      //需要还原位置
     // for(begin=head;begin!=NULL&&begin->val<=curMax;begin=begin->next)
      for(begin=head;begin!=NULL&&begin!=end;begin=begin->next)
      {   
           
           //从有序数组开始位置查找
          if(curl->val > begin->next->val) 
          {  
              continue;
          }else
          {   
              curl->next=begin->next;
              begin->next=curl;
              break;
          }
      }
      
      curl=end;// curl=curl->next  位置已经发生了变化 
    }
    return head;
    

    }


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.