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

电子商务网站建站网站收录查询网

电子商务网站建站,网站收录查询网,wordpress安装 centos,如何建设动态网站反转链表 问题描述 给定单链表的头节点 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/81248.html

相关文章:

  • 微信知彼网络网站建设江苏免费关键词排名外包
  • 我们不是做网站的推广平台网站有哪些
  • 外贸人常用网站怎么做网页设计的页面
  • 网站开发的背景知识网页设计制作网站html代码大全
  • 个人网站怎么做百度推广百度官网地址
  • 网站建设准备工作网络广告的形式有哪些?
  • dw设计做网站案例东莞seo网络推广专
  • 购物网站 wordpress 英文模板青岛关键词优化平台
  • php网站开发有前景吗企业培训考试系统
  • 企业运营过程中具有控制职能的环节是上海做seo的公司
  • 网站建设 网站优化营销型网站建设专家免费数据统计网站
  • wordpress友情链接直接留空白代码seo关键词推广公司
  • php 怎么做 网站 图片什么是交换链接
  • flashfxp与Wordpress如何点击优化神马关键词排名
  • 衡水龙华的网站建设必应搜索引擎网站
  • 全国 做网站的企业青岛网站设计
  • 手机qq钓鱼网站怎么做sem代运营推广公司
  • 机械公司网站模板今天高清视频免费播放
  • 桌面网站怎么做推广找客户平台
  • 设计师个人网站欣赏苏州网站建设开发公司
  • 做网站麻烦么免费做网站网站
  • 网站建设项目方案模板汽车推广软文
  • 网站开发的服务网站优化检测
  • 做网站托管服务器餐饮营销方案
  • 阿里云备案网站服务内容怎么填厦门百度seo公司
  • 浙江省台州市做网站多少钱靠谱的免费建站
  • Javaweb 网站开发实例seo权威入门教程
  • 工程建设部网站品牌营销策略有哪些方法
  • 南京企业制作网站简述网站内容如何优化
  • 我帮诈骗团伙做诈骗网站获利新产品推广方案范文