当前位置: 首页 > wzjs >正文

百度网盘优化搜索引擎的网站优化

百度网盘优化,搜索引擎的网站优化,网站上的超链接怎么做,网站开发电脑内存要多少3步口诀1个场景,面试再也不怕忘反转链表算法 反转链表是算法面试的高频题,很多人觉得指针操作绕来绕去,总是记不住代码。其实根本不用死记,记住一个生活化场景和3步口诀,就能在面试时轻松写出正确逻辑。今天就用最通俗…

3步口诀+1个场景,面试再也不怕忘反转链表算法

反转链表是算法面试的高频题,很多人觉得指针操作绕来绕去,总是记不住代码。其实根本不用死记,记住一个生活化场景和3步口诀,就能在面试时轻松写出正确逻辑。今天就用最通俗的方式,带你搞定反转链表的迭代法。

一、问题简化:什么是反转链表?

链表就像一串“手拉手”的节点,每个节点的next指针指向后一个节点,比如 1→2→3→4→5。反转链表就是把指针方向反过来,变成 5→4→3→2→1

二、核心方法:迭代法(面试首选)

迭代法的精髓是用两个指针“一步步反转”,配合一个临时变量防止链表“断链”。记住下面的场景和口诀,代码会自动“冒”出来。

场景联想:“手拉手转身”

把链表想象成一排人 手拉手站成一队(箭头方向就是拉手方向),现在要让他们 反向拉手。我们用两个指针pre(前面的人)和cur(当前的人)来指挥,步骤如下:

初始状态:
  • 队伍顺序:1→2→3→4→5(1拉2的手,2拉3的手,以此类推)。
  • pre 一开始站在队伍外(pre = null),cur 从第一个人1开始(cur = head)。

3步口诀:“存下一个,指向前一个,双指针前移”

每个人依次转身,重复这3步,直到所有人都转完:

  1. 第一步:存下一个
    当前人转身前,先记住身后拉着的人(比如2转身时,先记住身后的3),防止松手后找不到下一个人。
    对应代码:ListNode temp = cur.next;

  2. 第二步:指向前一个
    当前人转身,把手拉向pre(前面的人)。比如2本来拉3,现在改拉1。
    对应代码:cur.next = pre;

  3. 第三步:双指针前移
    pre往前走一步(到当前人位置),cur也往前走一步(到之前记住的“下一个人”位置),继续下一个人转身。
    对应代码:pre = cur; cur = temp;

三、代码实现(附步骤拆解)

把上面的逻辑写成代码,结构清晰到像填空:

public ListNode reverseList(ListNode head) {// 初始状态:pre在队伍外,cur从第一个人开始ListNode pre = null;ListNode cur = head;// 只要还有人没转身,就继续while (cur != null) {// 1. 存下一个要转身的人ListNode temp = cur.next;// 2. 当前人转身,拉前面的人cur.next = pre;// 3. 双指针前移,准备下一个人转身pre = cur;cur = temp;}// 最后pre就是新的排头(5)return pre;
}// 链表节点定义(面试时记得写)
class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}

四、面试时怎么快速回忆?

不用记完整代码,记住这4个关键点,就能“推导”出逻辑:

  1. 初始状态pre = null; cur = head;
  2. 循环条件while (cur != null)(没转完就继续)
  3. 循环内3步
    • 存下一个:temp = cur.next
    • 指向前一个:cur.next = pre
    • 双指针前移:pre = cur; cur = temp
  4. 返回结果return pre(反转后的头节点)

五、为什么迭代法是面试首选?

  • 时间复杂度:O(n),每个节点只遍历一次,效率高。
  • 空间复杂度:O(1),只用到3个指针,不占额外空间。
  • 逻辑直观:用“手拉手转身”场景就能解释,面试官一听就懂。

总结

反转链表的迭代法其实就是“重复3步操作”:存下一个、指向前一个、双指针前移。记住“手拉手转身”的场景,口诀一背,代码就像填空一样写出来了。面试前用1→2→3→4→5手动模拟一遍,肌肉记忆就有了,再也不怕紧张忘思路~

觉得有用的话,点赞收藏,下次面试前翻出来快速过一遍,稳了!


文章转载自:

http://81irkH4F.ywxLn.cn
http://IgTX24nk.ywxLn.cn
http://eWTSq3jE.ywxLn.cn
http://A15PonxD.ywxLn.cn
http://XhB4cA9P.ywxLn.cn
http://OTvIoGK0.ywxLn.cn
http://GjzswVl9.ywxLn.cn
http://ne0aX6tQ.ywxLn.cn
http://4vkXlm53.ywxLn.cn
http://JQFLm40J.ywxLn.cn
http://Hxf2gsLA.ywxLn.cn
http://73DqLX29.ywxLn.cn
http://tp0BPU5a.ywxLn.cn
http://FtnGVWZu.ywxLn.cn
http://DZ2A4aVm.ywxLn.cn
http://7d7hqx7W.ywxLn.cn
http://WXlxVcJp.ywxLn.cn
http://sQIrLLjP.ywxLn.cn
http://XptXl9Ve.ywxLn.cn
http://GZBHriuL.ywxLn.cn
http://wAVFimFt.ywxLn.cn
http://4vr4kHay.ywxLn.cn
http://6X2n2fZe.ywxLn.cn
http://uI47naLp.ywxLn.cn
http://3X6oB7UY.ywxLn.cn
http://YqgflxVg.ywxLn.cn
http://MyJz4f1w.ywxLn.cn
http://4HmVTjwF.ywxLn.cn
http://uGFFOxI2.ywxLn.cn
http://c2bNwGLn.ywxLn.cn
http://www.dtcms.com/wzjs/688271.html

相关文章:

  • iis网站正在建设中查找网站空间商
  • 只有网站才需要域名吗推广普通话宣传语100字
  • 网站建设如何传视频搭建网站要多少钱
  • 门户网站建设培训简报什么做直播网站好
  • 济南建站优化wordpress 医疗
  • 哈尔滨服务专业的建站网站建设与开发试题与答案
  • 电商网站 建社区江西h5响应式网站建设设计
  • 太原网站建设电话帝国和wordpress
  • 网站建设域名的购买网站编辑的工作职能有哪些
  • 接单做一个网站多少钱专业做网站开发
  • 如何做学校网站app怎样做医疗保健网站
  • pc和移动端网站跳转网站 建设 基本 数据库
  • 昆明做网站费用江西专业的网站建设公司
  • php网站建设全程实例自媒体135的网站是多少
  • 会用框架做网站能找到工作吗茂名平安建设网站
  • 网站标签怎么做跳转建立一个企业网站
  • 域名网站建设丰县建设网站
  • 拼团做的比较好的网站做美容网站
  • 做一个网站放网上要多少钱网络组建拓扑图
  • 自动搭建网站源码如何注册网站域名备案
  • 换公司网站域名要改吗网站制作 php
  • 网站的后台一般用什么做的wordpress如何让标签大小一致
  • 企业开源建站系统市场调研问卷调查怎么做
  • 阿里巴巴专门做外贸的网站淮北矿业工程建设有限公司网站
  • 网站建设活动方案南浦电商网站建设
  • 萝岗高端网站建设网店推广平台有哪些
  • 建筑设计网站网址怎么做贝店式的网站
  • 找工作哪个网站好2022太原线上推广公司
  • 网站前台可以打开网站开发高级工程师
  • vue适合什么样的网站开发wordpress怎样发询盘