LeetCode:206反转链表

206. 反转链表 - 力扣(LeetCode)

不难,小细节是单写一个循环,把特殊情况包含进去,

单链表核心:上一个结点,当前结点,下一个结点,

代码:+注释(算是最优解,不及格的)时O(n),空O(1)

对于另一种的递归方法有点拉跨 时O(n)空O(n)(在博主看来能循环做的基本就能递归做,而递归能做的循环不一定能做)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode* reverseList(struct ListNode* head) {//assert(head);if(head == NULL){return head;}struct ListNode* ptmp2 = NULL;struct ListNode* ptmp1 = head;//第一次有些特殊,要置一个ptail->next = NULL来作为新链表的尾//写的不好,不如官方题解,把这第一种情况给塞进循环(还少了head == NULL这种情况的判断)//可以自己去链接里看官方题解,就是本代码的ptmp1 最开始置NULL来操作的head = head->next;ptmp1->next =NULL;while(head){ptmp2 = head->next;head->next = ptmp1;ptmp1 = head;head = ptmp2;}return ptmp1;
}

官方解法(相对于上面的是优化的)时O(n)空O(1)

这种做法就是最好的,博主犯病搞多了变量,虽然差距不大,但是不优雅了,悲,

 

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* pReturn = NULL;while(head){struct ListNode* next = head->next;//写在这里,避免head为NULL造成的越界访问head->next = pReturn;pReturn = head;head = next;}return pReturn;
}

看到这里了,就来个三连吧,求求啦!(超大声!)(三连:点赞,收藏+关注)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI数字人训练数据集汇总

唇读(Lip Reading),也称视觉语音识别(Visual Speech Recognition),通过说话者口 型变化信息推断其所说的内容,旨在利用视觉信道信息补充听觉信道信息,在现实生活中有重要应用。例如&…

Python学习03 -- 函数相关内容

1.def --- 这个是定义函数的关键字 \n --- 这个在print()函数中是换行符号 1.注意是x, 加个空格之后再y 1.形式参数数量是不受限制的(参数间用,隔开),传实参给形参的时候要一一对应 返回值 --- 函数返还的结果捏 1.写None的时…

统计学-R语言-8.2

文章目录 前言双因子方差分析数学模型主效应分析交互效应分析正态性检验 绘制3个品种产量数据合并后的正态Q-Q图(数据:example8_2)练习 前言 本篇将继续介绍方差分析的知识。 双因子方差分析 考虑两个类别自变量对数值因变量影响的方差分析…

【Python】一个简单的小案例:实现批量修改图片格式

1.代码 import os from tkinter import Tk, Button from PIL import Imagedef check_and_create_folders():# 获取当前目录current_directory os.getcwd()# 定义文件夹名称folders_to_check ["JPG", "PNG"]for folder_name in folders_to_check:folder_…

AWTK 开源串口屏开发(9) - 用户和权限管理

用户管理和权限控制是一个常用的功能。在工业软件中,通常将用户分为几种不同的角色,每种角色有不同的权限,比如管理员、操作员和维护员等等。在 AWTK 串口屏中,内置基本的用户管理和权限控制功能,可以满足常见的需求。…

2024年美赛B题:寻找潜水器 Searching for Submersibles 思路模型代码解析

2024年美赛B题:寻找潜水器 Searching for Submersibles 思路模型代码解析 【点击最下方群名片,加入群聊,获取更多思路与代码哦~】 问题翻译 海上游轮迷你潜艇(MCMS)是一家位于希腊的公司,专门制造能够将人…

BEV感知(2)--转换模块

目录 一、2D到3D转换模块 1、LSS 2、Pseudo LiDAR 二、3D到2D转换模块 1、Explicit mapping 2、Implicit mapping 三、transformer相关 1、VIT 2、Swin Transformer 一、2D到3D转换模块 核心目的:由于将2D空间转换到BEV,所以我们要引入一个媒…

常用数据分析模型与方法

常用数据分析模型与方法 在进行数据分析过程中,通常需要使用各种模型来证明自己的分析观点,一是为了使自己的结论更具备说服力,二是让自己的论证过程更具备逻辑性和条理性。 FineBI 推出部分数据分析方法,帮助用户更好的使用 BI 进…

2024 RTE行业(实时互动行业)人才发展学习总结

解决方案 人才画像 开发者人才素质要求: 具备多个领域的技术知识注重团队合作,具备协作能力以用户为导向的用户体验意识具备创新思维和解决问题的能力需快速响应行业变化和持续的学习能力具备项目管理能力 学习和吸收新知识的渠道 RTE人才分类

十、Qt三维图表

一、Data Visualization模块概述 Data Visualization的三维显示功能主要有三种三维图形来实现,三各类的父类都是QAbstract3DGraph,从QWindow继承而来。这三类分别是:三维柱状图Q3DBar三维空间散点Q3DScatter三维曲面Q3DSurface 1、相关类的…

卸载Ubuntu双系统

卸载Ubuntu双系统 我们卸载Ubuntu双系统,可能出于以下原因: 1、Ubuntu系统内核损坏无法正常进入 2、Ubuntu系统分配空间不足,直接扩区较为复杂 3、以后不再使用Ubuntu,清理留出空间 123无论出于哪种原因,我们都是要…

TikTok赚钱又有新路子?TikTok选品有什么新秘籍?做对什么才能GMV破千万刀?

这一年,到底发生了什么? 上半年TikTok面临北美的严格审查和信息安全方面的质疑,但总算在9月有惊无险地打开了北美TikTok Shop这个“金匣子”,给跨境电商赛道带来新的增量机会,而东南亚市场虽在短暂停滞后迅速峰回路转…