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

个人网站主页设计教程百度云搜索引擎入口官网

个人网站主页设计教程,百度云搜索引擎入口官网,苏州创建公司,网页素材网站有哪些目录 一、链表理论基础 二、翻转链表思路 双指针解法 递归解法 三、相关算法题目 四、总结 一、链表理论基础 代码随想录 (programmercarl.com) 二、翻转链表思路 两种方法:双指针解法和递归解法 双指针解法 首先定义一个指针curr,初始化为原…

目录

一、链表理论基础

二、翻转链表思路

双指针解法

递归解法

三、相关算法题目

四、总结


一、链表理论基础

代码随想录 (programmercarl.com)

二、翻转链表思路

两种方法:双指针解法和递归解法

双指针解法

首先定义一个指针curr,初始化为原链表头结点 head,用来遍历整个链表;定义一个临时指针temp,用来保存 curr.next;定义一个指针 prev,用来表示经过翻转后的链表的头结点;

该解法主要思想是,让 curr 从前往后遍历原链表,按照顺序将结点 依次插入 prev 指针所指向的结点之前,即 按照从后往前的顺序构建新链表,这样就可以试下原链表的翻转;

注意点:

  1. 关于如何处理第一个节点的翻转:将 prev 和 temp 均初始化为 null,想象成在null之前插入结点,这样第一个结点的翻转和其他非头结点的翻转操作逻辑就可以一致;
  2. 在进行翻转操作时,要注意结点插入时,更新边和指针值的顺序,容易出错,见下图;

递归解法

思想同双指针,代码也是类比双指针的来写;

结合代码来看:

class Solution {public ListNode reverseList(ListNode head) {// 递归 return reverse(null, head);}private ListNode reverse(ListNode prev, ListNode cur) {if (cur == null) {return prev;}ListNode temp = null;temp = cur.next;// 先保存下一个节点cur.next = prev;// 反转// 更新prev、cur位置// prev = cur;// cur = temp;return reverse(cur, temp);}
}

首先定义一个递归方法reverse来实现翻转链表,方法有两个参数:prev 和curr,指向结点和双指针中一样,(curr指向当前待处理结点,prev指向其前一个结点);在递归体中,也需要定义一个临时指针temp 用来保存 curr.next;当 temp 保存好下一个结点位置,curr进行翻转,将当前节点的 next 指向前一个节点 prev,此时需要更新prev和curr的值,那么开始下一层递归调用

每次递归时,都会将当前节点的 next 指向前一个节点,然后继续处理下一个节点,直到链表的末尾;

1.为什么初始参数设置为(null,head)?

在最初的调用中,prev 初始化为 null,curr初始化为 head;

2.为什么curr = null时终止返回?

当curr = null时,意味着已经遍历到链表的末尾,此时返回prev,即反转后的链表的头节点;这也是递归的出口;

3.递归体的下一层递归参数?

同双指针中的后两步操作,prev 更新为curr, curr更新为 temp,所以下一层递归调用中,此时两个参数分别是: prev -> curr,curr -> temp;

三、相关算法题目

206.翻转链表

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

双指针解法:

class Solution {public ListNode reverseList(ListNode head) {//双指针法ListNode prev = null;ListNode temp = null;ListNode curr = head;while(curr != null){temp = curr.next;curr.next = prev;prev = curr;curr = temp;}return prev;}
}

递归解法:见上

四、总结

1.递归解法思想要理解;

2.双指针中第一个节点为什么不用单独处理?prev、temp、curr的初始值为?⭐️

3.双指针中更新边的顺序;

4.掌握双指针解法以及思想;⭐️

 

http://www.hengruixuexiao.com/news/39262.html

相关文章:

  • 温州网站建设平台百度投票人气排行榜入口
  • 创建网站基本流程成都网站seo外包
  • 剪辑素材网站短视频推广平台有哪些
  • 自己怎么创建网站seo教程自学
  • 广西营销型网站建设seo优化广告
  • 网站建设最关键的两个素材百度搜索风云榜排行榜
  • wordpress 常用 代码公司网络优化方案
  • 昆明网站建设公司什么是seo搜索
  • 做企业网站用什么字体百度搜索推广流程
  • 微信公众号小程序登录入口系统优化app最新版
  • 设计师培训感悟安徽新站优化
  • 站长工具麻豆百度商业平台官网
  • 电子商务网站建设解决方案群发软件
  • 深圳龙华属于宝安区吗长沙优化网站推广
  • 本地网站建设官网免费com域名申请注册
  • 怎样建立微网站网站怎么快速被百度收录
  • 东莞网站建设营销网站网站设计与网页制作
  • 四川南充最新疫情北京seo编辑
  • 河北平台网站建设价位微信营销方案
  • 做网站送独立ip什么意思网站推广与优化方案
  • 网站开发好后要做什么网站如何优化推广
  • 微信小程序教程入门篇搜索引擎关键词seo优化公司
  • 阜阳网站建设公司网站网络优化外包
  • 网站建设大概要多少钱软文营销方案
  • 工程建设与设计期刊seo一个关键词多少钱
  • 关键词排名点击软件网站网站销售怎么推广
  • 每天干每天做网站直播:英格兰vs法国
  • 网站架构图怎么画在线观看的seo综合查询
  • 网站建设需要多少资金长沙网络公司排名
  • 陕西省建设厅注册中心网站网络推广企划