【每日一题】06 排序链表

问题描述

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。

求解

c 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* sortList(struct ListNode* head) {
        struct ListNode * p = head;
        if(p == NULL){
            return head;
        }
        struct ListNode * q = head->next;
        int t;
        while(p->next != NULL){
            while(q !=NULL){
                
                //printf("before: p: %d, q: %d\n", p->val, q->val);
                if(p->val > q->val){
                    t = p->val;
                    p->val = q->val;
                    q->val = t;
                }
                //printf("after: p: %d, q: %d\n", p->val, q->val);
                q = q->next;
                
            

            }
            p = p->next;
            //printf("p : %d\n", p->val);
            q = p->next;
            //printf("q : %d\n", q->val);
        }

        
        return head;
}

该方法时间复杂度O(n^2)过高

后续补上使用快速排序方法提升时间复杂度

相关推荐
Starry_hello world1 小时前
二叉树实现
数据结构·笔记·有问必答
嵌入式AI的盲3 小时前
数组指针和指针数组
数据结构·算法
reyas5 小时前
B树系列解析
数据结构·b树
Indigo_code5 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
阿史大杯茶6 小时前
Codeforces Round 976 (Div. 2 ABCDE题)视频讲解
数据结构·c++·算法
不穿格子衬衫7 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序
aqua35357423587 小时前
蓝桥杯-财务管理
java·c语言·数据结构·算法
韬. .8 小时前
树和二叉树知识点大全及相关题目练习【数据结构】
数据结构·学习·算法
野草y8 小时前
数据结构(7.4_1)——B树
数据结构·b树
Word码8 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·经验分享·笔记·算法