2025年--Lc197-077. 排序链表(链表,尾插法)--Java版

1.题目


2.思路

(1)计算节点数

(2)创建数组存储链表的节点值

(3)对数组进行排序

(4)利用尾插法生成链表

3.代码实现

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode sortList(ListNode head) {
        //如果是空链表或者只有一个链表节点,我们直接返回
        if(head==null||head.next==null)
        {
            return head;
        }
        int num=0;
        ListNode tmp=head;
        while(tmp!=null)
        {
            num++;
            tmp=tmp.next;
        }
        //创建1个新数组
        int[] nums=new int[num];
        int i=0;
        tmp=head;
        while(tmp!=null)
        {
            nums[i]=tmp.val;
            tmp=tmp.next;
            i++;
        }
        //对数组进行排序
        Arrays.sort(nums);
        //因为nums是升序排序,所以构造链表是尾插法
        //链表的头指针(第一个节点)。最终返回它。
        ListNode begin=null;
        ListNode end=null;
        for(int j=0;j<num;j++)
        {
            if(begin==null)
            {
            begin=new ListNode(nums[j]);// 创建第一个节点
            end=begin;// 此时头节点也是尾节点
            }
            else{
            ListNode p=new ListNode(nums[j]);// // 新节点
            end.next=p;// 把新节点接在"尾巴"后面
            p.next=null;// 新节点的 next 指向 null
            end=p;// 更新尾指针,指向新的尾节点
        }


    }
    return begin;
}
}
相关推荐
西柚小萌新2 分钟前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛4 分钟前
cpp学习笔记--常量指针
java·开发语言·算法
java资料站11 分钟前
二、Spring AI Alibaba · ChatModel
java·windows·spring
十年Java程序媛35 分钟前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端
caoerzhong38 分钟前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
用户37215742613538 分钟前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java
for_ever_love__1 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
java资料站1 小时前
五、Spring AI Alibaba · Memory · Saver(短期会话)
java·spring·microsoft
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
波加曼大王2 小时前
# vLLM不要迷信PagedAttention神话,聊聊线上藏着的内部碎片陷阱
java·架构