《剑指offer》之——单链表的翻转

由于找不到mfc110u.dll,无法继续执行代码,重新安装程序可能会解决此问题的 解决方案 本文主要介绍了由于找不到mfc110.dll,无法继续执行代码的解决方案,希望能对使用Windows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 阅读详情

一直以来对算法有一种恐惧感,在没有刷题的情况下就匆忙开始秋招笔试。然后结果可想而知,除了一些原题以及一些非常常见的题目可以动手(然而自己编写却出现很多问题),对于大部分的需要稍微思考的算法题,通常是丈二的和尚摸不着头脑。秋招之后,觉得算法的基础过于薄弱,于是开始陆陆续续刷算法题,现终于差不多刷完《剑指offer》以及相关题目。于是准备对常见的算法题进行一个总结,结合良好思路和自己的理解记录在博客上。以此来勉励自己,如有错误或者不合理的地方,也希望得到读者的反馈和纠正以便共同进步!


单链表的翻转

对于顺序结构中数组的翻转,将从前往后遍历改为从后往前遍历。而为了正确翻转一个链表,必须调整链表中指针的方向,因为链表并不是连续存储的,而是通过一条条“链条”连接起来的。

分别确定是三个节点,prev,pcur,pnext,为了使原链表翻转,必须修改指针的指向,首先我们让pur指向prev,这个时候为了防止pnext断链,所以我们必须还要保存pnext。然后依次向后遍历,让prev指向pcur,并且pcur指向pnext,直到pcur为空。最后,保存原链表的尾节点即为翻转后的单链表的首节点。

ListNode *reverse(ListNode *head)
{
	//首先判断头结点是否为空或者头结点的下一个节点是否为空
	if (head == nullptr || head->next == nullptr) return head;
	ListNode *prev = head; //前节点
	ListNode *pcur = head->next;// 当前节点
	ListNode *pnext = nullptr; //后节点
	while (pcur != nullptr)
	{
		pnext = pcur->next; //保存下一个节点
		pcur->next = prev; //改变指针指向
		//依次向后遍历
		prev = pcur;
		pcur = pnext;
	}
	//确定新链表的头结点,就是原链表的尾节点
	head->next = nullptr;
	head = prev;
	return head;
}

 

5.3-集群电源模式解析 DSU-120 DynamIQ™集群支持9种电源模式,包括正常运行(ON)、完全断电(OFF)、三种数据保持模式(FUNC_RET、FULL_RET、MEM_RET)、两种调试模拟模式(OFF_EMU、MEM_RET_EMU),以及系统恢复模式(WARM_RST、DBG_RECOV)。这些模式通过智能管理电源状态,在保持数据完整性的同时实现功耗优化,并为系统调试和故障恢复提供支持。不同模式在RAM保持、逻辑断电和调试能力方面各有侧重,满足从正常运行到深度调试等不同场景需求。 阅读详情

相关推荐

抖音a_bogus参数逆向避坑指南:从环境检测到XHR请求的全流程解析

本文详细解析了抖音a_bogus参数在v1.0.1.19版本下的逆向工程全流程,重点介绍了如何通过PyV8Env框架进行有效的补环境操作,以绕过严格的环境检测。内容涵盖从环境初始化、关键事件触发到模拟XHR请求获取签名的完整步骤,并提供了可运行的Python代码示例和常见检测点的避坑指南,帮助开发者稳定生成有效的a_bogus参数。

tech5的博客 604

反转链表的四种方法

分享了原地反转,头插,迭代,递归四种反转链表的方法。

z3551906947的博客 1万+

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

fyihdg的专栏 1218

【基础算法】反转链表的三种方法

【基础算法】反转链表的三种方法

4347

SPEI计算避坑指南:gma中Distribution和FitMethod参数怎么选?

本文深入探讨了在SPEI计算中如何科学选择gma库中的Distribution和FitMethod参数,帮助研究者避开常见陷阱。详细分析了LogLogistic、Gamma和Pearson3三种分布的适用场景,以及LMoment与MLE拟合方法的优缺点,为气象干旱研究提供实用指南。

weixin_30308101的博客 254

51单片机STC8G1K08驱动ws2812记录

使用51单片机控制17个2812灯,这里选择STC8芯片,最大频率可以达到35M,参考网上的各种文章案例,使用定时器做的时候实测做不到规格书要求的245-345ns,STC8G1K08不带PWM,所以只能使用nop来做,好在单片机在这里只有做编程灯的功能,省略测试过程,下面是程序,使用的是24MHz内部晶振 //设置一个灯珠 void SendOnePix(unsigned char *ptr) { unsigned char i,j; unsigned char temp; fo...

的博客 7324

反转链表的四种方式

此时我们如果把end继续向后移动,我们就会发现end指向了NULL,所以我们也找到了循环终止的条件(end==NULL)。迭代法我们需要用三个指针完成,分别是前驱节点(pre),当前节点(cur),后驱节点(next)。当我们最后一次执行q=p->next(NULL)时跳出循环,反转结束。递归法其实理解起来还是有点难度的,主要需要我们明白递和归分别实现了什么。我们只需要用头插法的方式把原链表的数据一一插入,就能达到反转的效果。我们需要创建指针进行移动指向原链表的数据。原地反转需要用两个指针进行移动去完成。

2301_79977698的博客 8515

HX720数据采集实战:从硬件连接到姿态解析(含避坑指南)

本文详细介绍了HX720高精度ADC芯片在数据采集与姿态解析项目中的实战应用。内容涵盖从硬件电路设计、驱动源码编写与优化,到原始数据处理、校准以及最终姿态角度计算的完整流程,并提供了关键的避坑指南和调试技巧,帮助开发者高效完成从传感器信号到可用姿态数据的转换。

i8j9k0l1的博客 489

【算法】反转链表的四种方法(C语言)

新建链表法,递归,迭代,原地反转。

Patrick_yuxuan的博客 1万+

2026爬虫反爬终极对抗:AST解混淆+算法还原+Python复现全流程实战

本文分享了破解JS加密参数的完整流程,重点介绍AST解混淆和算法还原方法。针对电商网站常见的混淆手段(变量名混淆、控制流平坦化、字符串加密等),作者提出一套高效解决方案:通过AST解析还原可读代码,结合Chrome断点调试定位加密函数,最后用Python精准复现加密逻辑。文章包含具体的代码实现,如字符串数组还原的AST操作示例,并详细说明了从样本采集到验证测试的全流程。该方法已成功应用于10多个网站,将破解时间从一周缩短至一天,为处理JS加密参数提供了可复用的技术方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1527

电子科技大学计算机预推免(最终去向)

电子科技大学,预推免报名时必须要有一封本校老师写的推荐信,推荐信基本上就是复试的入场券,所以一定要提前联系老师,拿到推荐信。只要有机会进了面试,我觉得老师对于双非并不歧视,面试的个人表现才是关键性决定因素,技巧性也是很强的,如果有需要帮助的,欢迎私信~~

D1379951481的博客 3368

反转链表-四种方法

反转链表 链接 题目:描述 给定一个单链表的头结点head,长度为n,反转该链表后,返回新链表的表头。 以上转换过程如下图所示: 示例1 输入: {1,2,3} 返回值: {3,2,1} 示例2 输入: {} 返回值: {} 复制 说明: 空链表则输出空 1.迭代法 因为单链表只能由当前节点查找到后一个节点,因此使用迭代法时,需要保存当前节点的后一个节点。 curr 指向链表的当前节点,next 保存curr节点的下一个节点(因为是单链表,不保存的话,改变方向之后就找不到旧节点的

y_h_k_666的博客 2万+

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 878

剑指Offer- 翻转单链表

6 翻转单链表 除了用栈以外实现,还可以使用头插法和递归。当然了,这几种方法方法的空间复杂度都是O(n),时间复杂度也都是O(n)。只不过一种是用函数栈,一种是用虚拟机栈,一种是链表空间罢了。 主要是要注意头插法建表的模板。这是链表类型题目的一个基础模板。 //头插法的实现 public static void printListFromTailToHead2(ListNode head)...

Galip的博客 152

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

剑指Offer-翻转单链表

16.翻转单链表 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 样例 输入:1->2->3->4->5->NULL 输出:5->4->3->2->1->NULL 思路 有两种方法。一种直观的方法是使用栈,利用栈先进后出的特性。将节点的值全部压入栈,出栈的时候需要创建新的节点,连成链表。这里注意不要直接把链表...

Galip的博客 189

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Leetcode刷题】--链表--第206题 单链表的翻转

2.LeetCode第206题 单链表的翻转 这道题和剑指offer的第3题从尾到头打印链表是有区别的。单链表的反转是对结点一个一个操作的,每次把后面的一个结点抛到前面,不需要开辟另外的内存空间。 使用C++和Python实现: /** * Definition for singly-linked list. * struct ListNode { * int val; ...

wxq_1993的博客 250

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

剑指offer ----翻转单链表

翻转单链表 // 定义链表节点 function Node(val) { this.val = val; this.next = null; } function reverseLinkList(head) { let p =head; head = null; while(p){ q = p.next; p.next = head; head = ...

撒娇卖萌求offer的博客 144

《剑指offer》之“翻转单链表”递归、迭代、双指针解题

题目:《剑指offer》第二十四题 https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/ 解法:递归算法、迭代算法、使用双指针 开始操作~ 首先加一个链表类: static class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 解法一:迭代算法 (1)思想 使链表自身进行变化,使每个节点的next.

做兴趣使然的Hero 283

【剑指offer】从尾到头翻转打印单链表

#include #include #include using namespace std; struct ListNode { int m_Value; ListNode *next; }; void ReversePrint(ListNode* pHead) { std::stack s; ListNode *pTemp = pHead; if(NULL == pHead)

xqn2017的博客 220

剑指offer学习笔记——链表2:单链表的翻转(非递归&递归)

对应于剑指offer代码鲁棒性面试题16——反转链表:题目:输入一个链表,反转链表后,输出反转之后链表的头结点。求解思路:有非递归与递归两种解法:1、如果用非递归,为了防止反转一个结点之后链表断掉,我们必须记录当前结点cur,当前结点之前的节点pre,以及当前结点之后的节点post。2、如果使用递归,我们就假设当前结点之后的都已经反转好了。仅仅需要将当前结点之后的结点(post)连到当前结点,当前...

Super_GK的博客 393

[算法总结] 一文搞懂面试链表题

本文首发于我的个人博客:尾尾部落 链表是面试过程中经常被问到的,这里把剑指offer 和 LeetCode 中的相关题目做一个汇总,方便复习。 1. 在 O(1) 时间删除链表节点 题目描述:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路:常规的做法是从链表的头结点开始遍历,找到需要删除的节点的前驱节点,把它的 next 指向要删除节点的下一个...

尾尾部落 789

⭐算法入门⭐《链表》中等02 —— LeetCode 143. 重排链表

《链表》中等02 —— LeetCode 143. 重排链表

英雄哪里出来 2939

[算法总结] 17 题搞定 BAT 面试——链表题

本文首发于我的个人博客:尾尾部落 链表是面试过程中经常被问到的,这里把剑指offer 和 LeetCode 中的相关题目做一个汇总,方便复习。 1. 在 O(1) 时间删除链表节点 题目描述:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路:常规的做法是从链表的头结点开始遍历,找到需要删除的节点的前驱节点,把它的 next 指向要删除节点的下一个节点,平均时...

weixin_33750452的博客 188

[算法总结] 17 题! BAT面试涉及的链表题都在这里了

本文首发于我的个人博客:尾尾部落 链表是面试过程中经常被问到的,这里把剑指offer 和 LeetCode 中的相关题目做一个汇总,方便复习。 1. 在 O(1) 时间删除链表节点 题目描述:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。解题思路:常规的做法是从链表的头结点开始...

weixin_34124939的博客 124

前端复习--翻转单链表

动机出于面试需要,因为之前就看过这些内容,所以其实不怎么费劲 现在再次献上js翻转单链表的代码:(参考) (function (){ var node3 ={ //定义有三个节点的链表,这里要注意由与js是顺序解释的,如果开始定义node1,再定义node2,node1.next = node2,其实为undefined,所以链表节点要从尾节点定义 value:"z",

hellokingqwe的博客 587

剑指offer(翻转链表)

翻转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。 迭代 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public List...

weixin_41999706的博客 175
上一篇: C++面向对象编程之——构造函数(二)
下一篇: LeetCode 344 ---字符串的反转
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值