leetcodetop100 (22) 反转链表

news/2025/2/23 6:06:26
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表

简单的用一个动态数组Arraylist记录,然后倒序遍历赋值给一个新的链表,这种空间复杂度是o(n),估计需要优化。

采用双指针;

我们可以申请两个指针,第一个指针叫 pre,最初是指向 null 的。
第二个指针 cur 指向 head,然后不断遍历 cur。
每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。
都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。

package TOP11_20;

// 反转链表
//给你单链表的头节点 head ,请你反转链表,并返回反转后的链表
public class Top21 {
    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;
        }
    }

    public static ListNode reverseList(ListNode head) {
        //采用双指针
        ListNode pre = null;
        ListNode cur = head;
        // 有点难以理解 可以采用画图方式理解,第二个指针 cur 指向 head,然后不断遍历 cur。
        //每次迭代到 cur,都将 cur 的 next 指向 pre,然后 pre 和 cur 前进一位。
        //都迭代完了(cur 变成 null 了),pre 就是最后一个节点了。
        while (cur!=null){
            ListNode temp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = temp;
        }
        return pre;

    }
}

harryptter / LeetcodeTop100 · GitCode


http://www.niftyadmin.cn/n/5050721.html

相关文章

C语言--指针进阶3--数组指针

数组指针定义 类比: 整型指针--指向整型的指针 int a 10; int* pa &a; 字符指针--指向字符的指针 char ch a; char* pc &ch; 数组指针--指向数组的指针 int arr[10] { 0 }; int(*p)[10] &arr; // 数组指针 区分:指针数组和数组…

Learn Prompt- Midjourney案例:网页设计

快速开始​ 用 “ web design for...” 或 “ modern web design for..” 来快速开始你的提示。 web design for a generic SaaS startup --ar 3:2否定提示-no​ 使用--no告诉 Midjourney 你不想要什么。Midjourney 的默认风格倾向于现实和详细。但这可能不适用于所有品牌。…

Python的数据生成器函数yield的重复使用

1 数据生成器yield 首先简单介绍yield,这里主要参考这篇博客。在Python中,使用yield的函数被称为生成器函数(generator function)。生成器有两种方法:next()和send(),都可以调用生成器。yield和return经常…

【QT】QT事件Event大全

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享QT中的事件Event技术,主要从QT事件流程和常用QT事件方法等方面展开,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易…

常用数据官方网站

名称网址数据类型、所在行业宏观数据国家统计局http://www.stats.gov.cn/tjsj/关乎国计民生与经济发展的各类数据;经济、人口普查报告;统计年鉴年鉴汪https://www.nianjianwang.com/各省市的统计年鉴国家各部门数据 人力资源和社会保障部中华人民共和国人…

94 # express 兼容老的路由写法

上一节实现了错误处理中间件,这一节来实现兼容老的路由写法 看个 express 的二级路由的例子 const express require("express"); const userRouter require("./routes/userRouter"); const articleRouter require("./routes/articleR…

在Java中操作Redis_Spring Data Redis使用方式——环境搭建

在Java中操作Redis_Spring Data Redis使用方式——环境搭建 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置连接redis &#xff0c;在配置…