• Insertion Sort List


    链表的插入排序算法,其中大循环是,从原始链表中挨个读取每个元素。

    取出的每个元素用插入排序建立新表即可

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode* insertionSortList(ListNode* head) {
    12         ListNode * temp=head;  //用于最外层循环的控制。表述的是当前节点
    13         ListNode * tail;  
    14         ListNode * myhead=NULL;
    15         if(head==NULL)
    16             return NULL;
    17         while(temp!=NULL)
    18         {
    19             tail=temp->next;
    20             myhead=insertNode(myhead,temp);
    21             temp=tail;
    22         }
    23         return myhead;
    24     }
    25     ListNode * insertNode(ListNode * head,ListNode * temp)
    26     {
    27         temp->next=NULL;
    28         if(head==NULL)
    29             return temp;
    30         ListNode * t=head;
    31         ListNode * pre=NULL;
    32         while(t!=NULL)
    33         {
    34             if((temp->val)<(t->val))
    35             {
    36                 if(pre!=NULL)
    37                 {
    38                     pre->next=temp;
    39                 }
    40                 temp->next=t;
    41                 break;
    42             }
    43             pre=t;
    44             t=t->next;
    45             if(pre->next==NULL)
    46                 pre->next=temp;
    47                 
    48             
    49         }
    50         if(pre==NULL)
    51             head=temp;
    52         return head;
    53     }
    54 };
  • 相关阅读:
    安装gmsll
    常用LInux命令和操作
    yum 一键安装 jdk
    Linux目录详解,软件应该安装到哪个目录
    安装npm
    linux安装mysql (rpm + yum)
    springboot 打包jar 运行找资源文件
    rpm包安装java jar开机自启
    centos7设置服务开机自启
    linux(centos7) nginx 配置
  • 原文地址:https://www.cnblogs.com/aguai1992/p/4628880.html
Copyright © 2020-2023  润新知