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

无锡网站建设哪家公司好宣传册设计公司

无锡网站建设哪家公司好,宣传册设计公司,百度seo专业网站,企业网站建设公司怎么做反转链表题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 题解1-迭代 假设链表为 1→2→3→∅,我们想要把它改成 ∅←1←2←3。 在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没…

反转链表题目描述

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
在这里插入图片描述
在这里插入图片描述

题解1-迭代

假设链表为 1→2→3→∅,我们想要把它改成 ∅←1←2←3。

在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

// 函数:反转单链表
struct ListNode* reverseList(struct ListNode* head) {// 初始化前驱节点为 NULLstruct ListNode* prev = NULL;// 当前节点指向头节点struct ListNode* curr = head;// 循环直到当前节点为空(到达链表末尾)while (curr) {// 临时保存当前节点的下一个节点struct ListNode* next = curr->next;// 将当前节点的指针指向前驱节点,完成反转curr->next = prev;// 更新前驱节点为当前节点prev = curr;// 更新当前节点为下一个节点curr = next;}// 循环结束时,prev 指向原链表的尾节点,也就是反转后链表的头节点// 返回 prev,即反转后的链表头节点return prev;
}

在上述代码中,prev 并不是直接加入节点的。相反,prev 是用来指向当前节点的前一个节点的。在链表反转过程中,prev 会跟随着 curr 节点向前移动,而 curr 则指向当前正在处理的节点。加入节点的顺序是通过将当前节点的 next 指针指向前一个节点来实现的,从而改变了链表的连接顺序,达到反转链表的效果。

具体来说,在代码中的循环中,每一次迭代都会执行以下操作:

  1. 将当前节点 curr 的下一个节点保存到临时变量 next 中。
  2. 将当前节点 currnext 指针指向前一个节点 prev,实现了链表节点的反转。
  3. 更新 prev 指向 curr,将 curr 设为下一轮迭代的前驱节点。
  4. curr 设为 next,准备处理下一个节点。

通过不断迭代链表,并在每一步中更新指针的指向,实现了链表的反转。这样,循环结束时,prev 指向的是原链表的尾节点,即新的头节点,完成了链表的反转。

题解2递归

在这里插入图片描述

// 函数:反转单链表
struct ListNode* reverseList(struct ListNode* head) {// 如果链表为空或者只有一个节点,则直接返回头节点,因为反转后结果不变if (head == NULL || head->next == NULL) {return head;}// 递归调用,反转以头节点的下一个节点为头的子链表struct ListNode* newHead = reverseList(head->next);// 将当前头节点的下一个节点的下一个节点指向当前头节点,实现链表反转head->next->next = head;// 将当前头节点的下一个节点指向 NULL,防止形成环head->next = NULL;// 返回反转后的新头节点return newHead;
}

这段代码实现了一个递归方法来反转单链表。它的思路是先递归地反转以头节点的下一个节点为头的子链表,然后将当前头节点的下一个节点的 next 指针指向当前头节点,再将当前头节点的 next 指针指向 NULL,最后返回反转后的新头节点。

这种递归方法的关键是理解递归的调用过程,以及在每一级递归中如何改变链表节点之间的连接关系,从而实现链表的反转。

作者:力扣官方题解
链接:https://leetcode.cn/problems/reverse-linked-list/solutions/551596/fan-zhuan-lian-biao-by-leetcode-solution-d1k2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.yayakq.cn/news/25047/

相关文章:

  • 免费网站建设步骤淄博网站
  • 怎么做自己的网站主页劳务派遣做网站有必要吗
  • 做网站毕业答辩会问什么反邪手机网站建设方案
  • 做网店有哪些拿货网站优秀交互设计网站
  • 个人做网站用哪个主机好建设银行手机银行网站用户名
  • com网站域名可以是汉字吗足球比赛直播2021欧冠决赛
  • 免费自己制作网站方法游戏怎么开科技
  • 建设网站怎么收费wordpress 无法在线升级
  • 有关做有机肥的企业网站做数码后期上数码网站
  • 网站素材大全北京装修公司口碑最好的是哪家
  • 网站模板 黑白小程序制作实惠首选华网天下
  • 城阳做网站找哪家好网站的风格设计
  • 平台网站开发是什么意思wordpress前台加速
  • 网页图片批量下载seo网站推广的主要目的是什么
  • 怎样建设VR网站济宁推广
  • 网站建设开发软件哪些是+joomla做的网站
  • 免费网站搭建系统自己怎样做海外网站
  • 沈阳网站优化建设昵图网素材图库免费下载
  • 南坪做网站跨境电商需要投资多少
  • 西安做网站科技有限公司wordpress主题添加
  • 商业门户网站制作辽宁省网站制作
  • 东莞网站建设提供商自己做的网站图片打开慢
  • 会网站建设怎样赚钱西安百度公司电话
  • 怎么 网站 wordpress网站开发资金来源
  • 成都网站建设的费用百度2020新版下载
  • 广州网站制作哪里好搭建服务器需要多少钱
  • 中英文网站多少钱阿里巴巴 网站设计
  • 网站商城建设哪家好宣传类的网站有哪些内容
  • 外包网站开发安全吗竞价什么意思
  • 项目名称有创意大全seo1短视频网页入口营销