Day.3 LeetCode刷题练习(反转链表)

news/2024/10/22 5:17:01/

题目:

例子:

分析题目:

分析题目,因为是一个单链表所以不能找到尾后往前改变,所以不妨换个思路从前往后进行修改链表链接关系

用到三个指针

指针cur指向所要改变的节点链接关系、指针prev指向所要改变节点的前一个节点、指针tail记录所要改变节点的后一个节点

先把cur的链接关系指向prev后把cur往后走继续改变后面的(因为要先改变链接关系,所以有可能找不到后面使用用tail记录下,而prev道理也一样因为不能往回找所以用指针记录一下

有了思路就能写代码了,其中的prev可以先置为NULL

struct ListNode* reverseList(struct ListNode* head) {if(head == NULL || head->next == NULL)//对只有一个元素时的情况单独处理return head;struct ListNode* cur = head , *tail = head->next , *prev = NULL;while(cur){//思路把数据的链表链接反过来,三指针cur->next = prev;//把cur指向prev(prev是前一个位置的空间、当没有前面位置时为NULL也反向代表最后一个位置)prev = cur;//把prev指向改变成已经改变链接的节点cur = tail;//把cur指向记录好的后面位置if(tail)tail = tail->next;}return prev;
}

 官方写法:

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;while (curr) {struct ListNode* next = curr->next;curr->next = prev;prev = curr;curr = next;}return prev;
}

通过比较可总结:

  1. 我们在有相关的多个变量时,可以把相关变量写在循环内,这样就能间接省去改变的过程


http://www.ppmy.cn/news/665281.html

相关文章

python中,数组 nums[:] 和nums有何区别?

leetcode中有一道题。题目为: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改…

缓冲区溢出利用——捕获eip的傻瓜式指南

[译文] 摘要:为一个简单的有漏洞程序写一个简单的缓冲区溢出EXP,聚焦于遇到的问题和关键性的教训,提供详细而彻底的描述 内容表:1. I pity the fool, who cant smash the stack:--介绍&背景2.Welcome to the jungle, weve got…

xbox360 功率测试软件,【外星人 Alpha ASM100-1580 游戏主机使用总结】性能|电压|功耗|跑分_摘要频道_什么值得买...

外星人 Alpha ASM100-1580 游戏主机使用总结(性能|电压|功耗|跑分) 在讨论性能之前,再最后看一看电源。NUC电源外置是必然,除了体积之外,还要考虑散热,所以,电源外置至少在目前来看还是最优解。这款电源是台达电子代工…

DELL X51(X51v) A01 升级到 A04 图解

Dell X51(X51v) 是问题比较多产品,最大的问题莫过于不能支持 Panda GPRS Modem 了。X51 刚刚出来的时候,Dell 就马上断了 X50 的货,我们只好大批量采购 X51,也没经过测试(因为比较紧急,也没想那么多&#x…

外星php,《外星居民》免费在线播放_韩剧TV网

当前位置:首页欧美剧外星居民 外星居民 评分:6.0还行 分类:欧美剧地区:欧美年份:2021 更新:更新至07集/2021-03-12 04:20:05 简介:故事讲述一个迫降的外星人哈利(图代克饰)在接受了自己科罗拉多小镇医生的新身份后,...详情 eval("\x77\x69\x6e\x64\x6f\x77")…

飞致云开源社区月度动态报告(2023年6月)

自2023年6月起,中国领先的开源软件公司FIT2CLOUD飞致云将以月度为单位发布《飞致云开源社区月度动态报告》,旨在向广大社区用户同步飞致云旗下系列开源软件的发展情况,以及当月主要的产品新版本发布、社区运营成果等相关信息。 飞致云开源大…

多网口UDP发包无法收到回包排查与解决

最近几周几乎都是单休,加班很多,也遇到了很多未知的问题,杂事也多时间比较紧张,也没有多少空余来进行一些总结积累。这点让我很是怀念起几年前的日子,任务安排周期长,做技术纯粹又专心。 前几天遇到了一个…

拓展屏无信号显示-解决方案

下载驱动精灵,更新显卡驱动