剑指offer——JZ24 反转链表 解题思路与具体代码

news2025/1/15 17:16:26

一、题目描述与要求

反转链表_牛客题霸_牛客网 (nowcoder.com)

题目描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

数据范围: 0≤n≤1000

要求:空间复杂度 O(1) ,时间复杂度 O(n) 。

如当输入链表{1,2,3}时,

经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

以上转换过程如下图所示:

示例

示例1:

输入:{1,2,3}

返回值:{3,2,1}

示例2:

输入:{}

返回值:{}

说明:空链表则输出空


二、解题思路

【利用辅助指针实现反转】

首先判断是否为空链表,是的话直接返回空,否则提交可能会导致出现“段错误”。然后就是利用两个指针,指针p是用来遍历整个链表并且用来为q赋值;指针q则是依次将每个结点插入到头结点前面。,插入成功之后移动头结点即可。


三、具体代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    ListNode* ReverseList(ListNode* head) {
        // write code here
        if(head==NULL){
            return NULL;
        }
        ListNode* p,*q;
        p=head->next;
        head->next=NULL;
        while(p){
            q=p;
            p=p->next;
            q->next=head;
            head=q;
        }
        return head;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1057851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mongodb7启动报错排除解决方案

一: 报错信息: [rootwww log]# journalctl -xe -- Unit mongodb.service has begun starting up. /usr/local/mongodb/mongdb7/bin/mongod --help for more information 10月 03 13:47:39 www.yhchange.com systemd[1]: mongodb.service: control process exited, …

10.03

代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…

2023年中国BaaS行业发展概况及未来发展趋势分析:未来多链支持和发展将是BaaS平台发展重点方向[图]

BaaS是指将区块链框架嵌入云计算平台&#xff0c;利用云服务基础设施的部署和管理优势&#xff0c;为开发者提供便捷、高性能的区块链生态环境和生态配套服务&#xff0c;支持开发者的业务拓展及运营支持的区块链开放平台。通常情况下&#xff0c;一套完整的 BaaS 解决方案包括…

文件管理:极速复制粘贴,畅享无限次文件管理!

亲爱的用户&#xff0c;您是否经常需要将文件夹里的所有文件进行无限次复制粘贴&#xff0c;但又觉得这个过程繁琐而耗时&#xff1f;现在&#xff0c;我们为您推出一款极速文件管理工具&#xff0c;让您可以轻松实现无限次的文件复制粘贴&#xff0c;让文件管理更加高效畅快&a…

正则验证用户名和跨域postmessage

正则验证用户名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…

剑指offer——JZ6 从尾到头打印链表 解题思路与具体代码

一、题目描述与要求 从尾到头打印链表_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入一个链表的头节点&#xff0c;按链表从尾到头的顺序返回每个节点的值&#xff08;用数组返回&#xff09;。 如输入{1,2,3}的链表如下图: 返回一个数组为[3,2,1] 0 < 链表长度 < …

最新SparkAI创作系统V2.6.2/ChatGPT网站系统H5源码+微信公众号版+AI绘画系统源码/支持GPT联网提问/支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图…

2023年中国电动汽车充换电站行业现状分析:随车配建私人充电桩增量持续上升[图]

充电站指为电动汽车提供充电服务的专用场所&#xff0c;由多台集中布置的充电设备以及相关的供电设备、监控设备﹑配套设施等组成。可将充电站规模分为3类&#xff1a;大型充电站、中型充电站和小型充电站。换电站指为电动汽车提供电池更换服务的场所。按换电模式分类&#xff…

掌机小霸王,开源俄罗斯方块小游戏

俄罗斯方块试玩gi PC或手机 点开即玩: https://chvin.github.io/react-tetris/?lanzh-cn 也可以扫码开玩: 实现了数据的持久化 游戏进度的数据可以持久存储到本地浏览器, 即使刷新网页也无需重新开始游戏 小结: 俄罗斯方块属于超级经典的游戏, 感兴趣可以玩一下, 找回一点童…

【算法练习Day10】有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 有效的括号删除字符串中的所…

树莓派4B与STM32串口通信

目录 2上篇文章的补充 2.1 树莓派通信设置 3树莓派与STM32通信 3.1接线准备 3.2代码 3.2.1 STM32代码&#xff1a; 3.2.2树莓派代码&#xff1a; 2上篇文章的补充 2.1 树莓派通信设置 在上篇文章的基础上&#xff0c;进一步的设置 终端输入&#xff1a;sudo minicom …

【Golang】接口 IO操作

文章目录 1、接口1-1、为什么要有接口1-2、接口的定义1-3、接口的实现条件1-4、类型与接口的关系1-5、空接口 2、IO操作2-1、Reader2-2、Writer2-3、bufio2-4、ioutil工具包2-5、实现一个cat命令 1、接口 1-1、为什么要有接口 在Go语言中接口&#xff08;interface&#xff0…

Flink--7、窗口(窗口的概念、分类、API、分配器、窗口函数)、触发器、移除器

星光下的赶路人star的个人主页 内心的平静始于不再让他人掌控你的感情 文章目录 0、前言1、窗口&#xff08;Window&#xff09;1.1 窗口的概念1.2 窗口的分类1.3 窗口API概览1.4 窗口分配器&#xff08;Window Assigner&#xff09;1.4.1 时间窗口1.4.2 计数窗口 1.5 窗口函数…

什么是Vue的JSX语法?如何使用JSX语法

Vue的JSX语法&#xff1a;更接近JavaScript的模板语言 Vue.js是一个流行的JavaScript框架&#xff0c;用于构建交互式的Web应用程序。虽然Vue通常使用模板语法来构建用户界面&#xff0c;但它也提供了JSX语法的支持&#xff0c;使开发人员能够更接近JavaScript的表达方式来构建…

Eclipse MAT解析headp dump,total size小于file size

1. 问题描述 使用Eclipse MAT分析20GB的heap dump文件 最后解析出来dump size只有1GB 2. 原因&#xff1a;heap dump中包含许多unreachable objects Eclipse MAT的官方文档&#xff0c;《Basic Tutorial》章节&#xff0c;有对上图的Overview page做介绍 针对total size小…

Open Cascade旋转变换平行线

在本人开发的弯管自动CAM软件中&#xff0c;有一个问题一直没有解决&#xff0c;就是180度平行管路需要做角度微调&#xff0c;以便进行YBC预览。研究了一番后&#xff0c;搞定了这个问题&#xff0c;关键在于采用OCC库实现拓扑变换。 本文将介绍如何使用OpenCASCADE库来实现平…

微信公众号如何修改主体?

公众号账号迁移的作用是什么&#xff1f;只能变更主体吗&#xff1f;1.可合并多个公众号的粉丝、文章&#xff0c;打造超级大V2.可变更公众号主体&#xff0c;更改公众号名称&#xff0c;变更公众号类型——订阅号、服务号随意切换3.可以增加留言功能4.个人订阅号可迁移到企业名…

牛客题霸 -- 【模板】完全背包

参考代码&#xff1a; 未优化的代码&#xff1a; int n; int V; const int N1010; int v[N]; int w[N]; int dp[N][N];int main() {cin>>n>>V;for(int i1;i<n;i){cin>>v[i]>>w[i];}//第一问&#xff1a;//dp表中的第一行全是0&#xff0c;无需初始…

【初识Linux】上

初识Linux上 一、Linux背景1.1 UNIX发展的历史1.2 UNIX发展的历史 二、开源三、官网Linux官网 四、企业应用现状五、发行版本六、 os概念&#xff0c;定位 本博客简介 初始Linux操作系统初识shell命令 ,了解若干背景知识。使用常用Linux命令了解Linux权限概念与思想,能深度理解…