Sort a linked list using insertion sort.

题目要求:链表的插入排序,由于没有时间复杂度的要求,可以直接循环操作。

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* insert(ListNode* head,int num){
ListNode *node = new ListNode(num);
if(head==NULL || num <= head->val){
node->next=head;
return node;
} ListNode *pre = head;
ListNode *tail = head->next;
while(tail!=NULL && num > tail->val){ // 一定要注意tail!=NULL 先决条件
pre= tail;
tail=tail->next;
}
node->next = pre->next;
pre->next = node;
return head; }
ListNode* insertionSortList(ListNode *head){
if(head==NULL || head->next==NULL) return head;
ListNode *tmp = head;
ListNode* ans=NULL;
while(tmp!=NULL){
ans = insert(ans,tmp->val);
tmp =tmp->next;
}
return ans;
}
};

转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!

最新文章

  1. Convert BSpline Curve to Arc Spline in OpenCASCADE
  2. Python中MySQLdb模块的安装
  3. bootstrap-fileupload-上传文件控件
  4. Loadrunner 接口测试的两种方法
  5. 【转】雪崩光电二极管(APD)偏置电源及其电流监测
  6. 转 java 类 单例
  7. EXT.NET常用属性
  8. poj 1094
  9. python 人工智能资源推荐
  10. mysql 函数学习(常用)
  11. 2018.我的NOIP补全计划
  12. selenium 文件上传
  13. 2028 ACM Lowest Common Multiple Plus
  14. openresty + lua 2、openresty 连接 redis,实现 crud
  15. EBS Webservice Timeout,HTTP Server Return &quot;500 Internal Server Error&quot;
  16. (一)预定义宏、__func__、_Pragma、变长参数宏定义以及__VA_ARGS__
  17. 【对比分析六】JavaScript中GET和POST的区别及使用场景
  18. 采购文件中 RFI、RFQ、RFP、IFB的区别
  19. MySQL——安装
  20. input file实现多次上传文件(不会覆盖上次上传的文件)

热门文章

  1. processlist中最哪些状态要引起关注
  2. 3、数据类型一:strings
  3. 基于AT UI实现表格的增删改查遇到的坑
  4. C# 有关控件、自定义类事件中的委托链的获取、移除操作
  5. jq循环方法
  6. [JS] 让人犯晕的JavaScript变量赋值
  7. zt &lt;Windows Image Acquisition (WIA)&gt; from msdn
  8. Python实现七牛云视频播放
  9. Ant学习--简单实例入门
  10. malloc realloc calloc free