Processing math: 100%

Boostable

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  116 随笔 :: 0 文章 :: 28 评论 :: 93310 阅读

LeetCode: Insertion Sort List

Sort a linked list using insertion sort.

地址:https://oj.leetcode.com/problems/insertion-sort-list/

算法:按题目的意思,采用插入排序对链表进行排序,时间复杂度为O(n2)。代码:

复制代码
 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 *p = head, *q = NULL, *pre = NULL;
13         if(p){
14             p = p->next;
15             head->next = NULL;
16         }
17         while(p){
18             pre = NULL;
19             q = head;
20             while(q && q->val <= p->val){
21                 pre = q;
22                 q = q->next;
23             }
24             if(pre){
25                 pre->next = p;
26                 p = p->next;
27                 pre->next->next = q;
28             }else{
29                 head = p;
30                 p = p->next;
31                 head->next = q;
32             }
33         }
34         return head;
35     }
36 };
复制代码

 

posted on 2014-07-28 22:19  Boostable  阅读(194)  评论(0)    收藏  举报
编辑推荐:
· 编码之道,道心破碎。
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
阅读排行:
· 一周 Star 破万的开源项目「GitHub 热点速览」
· 编码之道,道心破碎。
· 千万级大表,如何做性能调优?
· 知名开源项目Alist被收购!惹程序员众怒,开团炮轰甲方
· 不写代码,让 AI 生成手机 APP!保姆级教程
点击右上角即可分享
微信分享提示