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

永远网站建设重庆森林经典台词图片

永远网站建设,重庆森林经典台词图片,wordpress隐藏浏览量,做网站是需要多少钱反转链表 问题描述 给定单链表的头节点 head,要求反转链表并返回反转后的链表头节点。 题目传送门 思路一:创建新链表头插法 核心思路:创建新链表,将原链表中的节点拿来头插 算法步骤 初始化新链表头节点 newhead 为 NULL使…

反转链表

问题描述

给定单链表的头节点 head,要求反转链表并返回反转后的链表头节点。

题目传送门

在这里插入图片描述

思路一:创建新链表头插法

核心思路:创建新链表,将原链表中的节点拿来头插

算法步骤

  1. 初始化新链表头节点 newheadNULL
  2. 使用指针 pcur 遍历原链表
  3. 每次循环中:
    • 保存 pcur 的下一个节点(防止丢失后续节点)
    • pcur 插入到新链表头部
    • 更新新链表头节点为 pcur
    • 移动 pcur 到下一个节点
  4. pcurNULL 时,返回新链表头节点

如图:

在这里插入图片描述

struct ListNode* reverseList(struct ListNode* head) {struct ListNode* newhead,*pcur;newhead=NULL;pcur=head;while(pcur){struct ListNode* tmp=pcur->next;//先保存pcur的下一个节点 头插时会改变pcur的指向//头插pcur->next=newhead;newhead=pcur;pcur=tmp;}return newhead;}

复杂度分析

  • 时间复杂度:O(n),只需遍历链表一次
  • 空间复杂度:O(1),仅使用固定数量的指针变量

思路二:三个指针法

指针定义

  • n1:指向已反转部分的最后一个节点(初始为NULL)
  • n2:指向当前待反转节点(初始为头节点)
  • n3:指向下一个待反转节点(初始为头节点的下一个节点)

算法步骤

  1. 初始化三个指针:n1 = NULL, n2 = head
  2. 如果链表非空,则设置 n3 = head->next
  3. 循环操作直到 n2 为空:
    • n2next 指针指向 n1(反转当前节点)
    • n1 移动到 n2 位置
    • n2 移动到 n3 位置
    • 如果 n3 不为空,则将 n3 移动到下一个节点
  4. 返回 n1(即新链表的头节点)

如图

在这里插入图片描述
)

可以看到循环结束的条件是n2为空

struct ListNode* reverseList(struct ListNode* head){struct ListNode* n1,*n2,*n3;n1=NULL;n2=head;if(n2)//判断链表是否为空n3=n2->next;while(n2){n2->next=n1;n1=n2;n2=n3;if(n3)//判断n3是否为空n3=n3->next;}return n1;
}

注意事项

  1. 边界条件处理
    • 空链表:直接返回 NULL
    • 单节点链表:无需反转,直接返回头节点
  2. 指针移动顺序
    • 必须先更新 n1n2,再更新 n3
    • 更新 n3 前需要检查其是否为空,避免空指针异常

复杂度分析

  • 时间复杂度:O(n),只需遍历链表一次

  • 空间复杂度:O(1),仅使用固定数量的指针变量

    方法对比分析

方法优点缺点适用场景
头插法逻辑清晰,易于理解需要额外空间存储新链表教学演示,简单场景
三指针法原地操作,空间效率高指针操作需要谨慎内存受限环境

总结

反转链表是链表操作中的经典问题,2种方法各有特点:

  1. 头插法:直观易懂,适合初学者理解链表反转的基本原理

  2. 三指针法:空间效率最优,适合实际开发中的内存敏感场景

受限环境

http://www.dtcms.com/wzjs/269926.html

相关文章:

  • 价格低廉的意思seo技术分享博客
  • 女生做网站开发北京seo如何排名
  • 品牌建设 凝心广州关键词优化外包
  • 用织梦建网站如何制作网页教程
  • 虚拟货币做空网站b站推广网站2024
  • 济南汽车网站设计每日英语新闻
  • 平台网站功能seo薪酬水平
  • 做职业测试的网站南和网站seo
  • 腾讯云怎样做网站站长工具如何使用
  • 软件网站排行榜seo推广方式是什么呢
  • 怎样用自己的主机做网站统计工具
  • 盐城网站建设费用百度推广投诉电话客服24小时
  • 免费ai图片生成器市场推广seo职位描述
  • 潍坊免费网站制作seo关键词
  • 做企业网站的字体大小要求自己的产品怎么推广
  • 奶茶网站建设郑州品牌网站建设
  • 市住房城乡建设委员会官方网站项目营销策划方案
  • 郑州做网站的大公司有哪些电商运营数据六大指标
  • 自己做网站怎么让字体居中怎样才能注册自己的网站
  • 网站开发客户需求曼联官方发文
  • 做网站不用服务器吗百度网盘资源分享
  • 做网站的环境配置外包公司怎么赚钱
  • 阳江网站建设公司seo草根博客
  • 影院网站建设主管百度搜索热度
  • 北京微网站建设设计服务公司seo营销排名
  • wordpress打开后台为404池州网站seo
  • 如何在手机上做微电影网站杭州网站推广找哪家
  • 怎么在公安局网站上做企业备案百度投诉电话人工客服24小时
  • 怎么学网站建设谷歌seo推广
  • 网站维护与建设合同百度站长社区