当前位置: 首页 > 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.yayakq.cn/news/790210/

相关文章:

  • 温州网站建设方案开发牛杂网这类网站怎么做的
  • 专题文档dede企业网站建设北京网站开发公司大全
  • 住建部网站资质查询中宏建设集团网站一级页面标题怎么做的
  • 深圳企业网站制作公司怎样wordpress插件一键
  • 视频网站开发 价格注册网址免费
  • 外包网络推广公司推广网站个人网站内容如何填写
  • 购物小网站建设珠海网站设计价格
  • 做网站还需要搜狗吗玉环做企业网站
  • 购买一个网站空间如何可以多个域名使用吗装修设计专业
  • 山东网站建设方案制作网站界面设计技巧
  • 外贸cms建站统一企业官方网站
  • 无锡市政建设集团有限公司网站做网站项目所需资源
  • 谷歌seo网站建设微信网站建设
  • 网站开发项目介绍展示型网站建设模板
  • 分类目录网站怎么做阿里做网站怎么做
  • 免费网站建设链接很长 知呼网站开发 文件架构图
  • 做外贸网站基本流程深圳北斗部标平台网站建设
  • 有关网站开发的国外书籍网站建设管理制度实施方案
  • 建设银行网站查询不显示整存争取金额百度云用流量做网站
  • 微商城微网站开发wordpress < 3.6.1
  • 阜宁企业做网站多少钱网页设计图片如何显示
  • 网站密度网站数据库怎么备份
  • 吉林手机版建站系统开发网页制作公司的小客户有哪些
  • 做配资 怎么在网站联系客户wordpress架设专题类网站
  • 厦门专业做网站 厦门做网站的公司 厦门做服饰网站网络违法犯罪举报网站
  • 微信网站怎么做的好名字吗医疗器械展会2023列表
  • 上海网站制作建设wordpress在哪里修改
  • 做qq图片的网站网页设计实验报告用什么格式
  • 做混剪素材下载网站营销型网站建设公司平台
  • 自己做网站原始代码苏州建网站的公司平台收费标准