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

简约 网站净化工程 技术支持 东莞网站建设

简约 网站,净化工程 技术支持 东莞网站建设,优化整站,做venn的网站对递归的思考最近做了很多关于递归实现dfs的题,一直在想什么时候总结一下递归使用时的关键点,但一直没想好就拖得没影了,写完上面的总结时,突然想到一句话“种一棵树最好的时间点是十年前,其次就是现在”,那…

对递归的思考

最近做了很多关于递归实现dfs的题,一直在想什么时候总结一下递归使用时的关键点,但一直没想好就拖得没影了,写完上面的总结时,突然想到一句话“种一棵树最好的时间点是十年前,其次就是现在”,那这次就借这篇博客总结一下我对递归的思考

先简单讲一下我对递归的理解,递归解决问题的核心思路就是:将一个大问题转换为许多个与这个大问题处理逻辑相同的小问题,最后只用写出处理小问题的逻辑代码,再进行递归调用即可!

说着简单,想着也很简单,但真正解决问题时想理清思路还需要大量的题目积累与锻炼,这里再总结一下递归使用时的关键点

①问题分解(核心底层逻辑)

②递归时机(与底层逻辑相关)

③边界条件(递归停止时机)

④递归参数与递归结果(合理利用返回值)

纸上得来终觉浅,绝知此事要躬行,我们就拿下面的题结合前面的所讲深入感受递归

问题描述

解题思路

关键点在于:二叉树的最长路径不一定经过根节点!它可能隐藏在任意子树中。结合递归的四要素我们需要理清:

①问题分解(核心底层逻辑):计算当前节点左子树深度右子树深度

②递归时机(与底层逻辑相关):节点不为非空节点(说明该节点还可能再往下延伸)

③边界条件(递归停止时机):节点为空节点(说明左/右子树已到达最深)

④递归参数与递归结果(合理利用返回值):使用成员变量记录直径最大值

代码实现

class Solution {public int max=0;public int diameterOfBinaryTree(TreeNode root) {if(root==null){return 0;}max=0;int result=jisuan(root);return max;}private int jisuan(TreeNode root) {if(root==null){return 0;}int left=jisuan(root.left);int right=jisuan(root.right);max=Math.max(max,left+right);return Math.max(left,right)+1;}
}

算法解析

  1. 递归终止条件:遇到空节点时返回深度0
  2. 后序遍历框架:先递归处理左右子树,再处理当前节点
  3. 核心操作
    • 左子树深度 + 右子树深度与全局最大值比较
    • 返回当前子树深度(左右子树深度较大值 + 1)
  4. 时间复杂度:O(N),每个节点仅访问一次
  5. 空间复杂度:O(H),递归栈深度等于树高

关键点说明

  • 为什么需要全局变量:最长路径可能出现在任意子树中,必须全局记录
  • 深度计算原理:每个节点的深度由其最深子树决定
  • 路径计算本质:路径长度等于连接边的数量(非节点数)

总结

至此,相信大家对递归有了更加系统的认识

这个解法巧妙地利用DFS后序遍历:

  1. 自底向上计算每个节点的子树深度
  2. 在递归过程中动态更新最大直径
  3. 仅用O(1)额外空间存储全局最大值

http://www.dtcms.com/a/480417.html

相关文章:

  • 网站建设实训的报告网站开发语言 排行榜
  • 机关单位 网站建设方案策划书中国纪检监察报每周几期
  • 武冈网站建设哪家好电脑网页打不开怎么回事
  • 江苏省城乡和住房建设厅网站苏州晶体公司网站
  • WORDPRESS网站如何改版怎么做一个网站app吗
  • 天台高端网站建设公司代理网页 国外
  • 天元建设集团有限公司第八建筑工程公司长沙seo建站
  • 网站搭建公司排行门户网站建设 报告
  • 百度查重免费舟山seo
  • 做地方分类信息网站需要什么资质吗成都网站制作中国互联
  • 赣州网站设计哪家强平台不得诱导下载
  • 南宁网站建设公司哪家好小型网站建设方案
  • 制作旅游网站百度指数专业版app
  • 怎么做旅游网站框架江苏省建设集团是国企吗
  • 仿it资讯类网站源码商城类app制作价格
  • 网站的v2信誉认证怎么做企业邮箱服务
  • 制作微信网页的网站吗中间商可以做网站吗
  • 杭州网站制作外包网站推广软件推荐
  • 网站建设丨找王科杰专业seo wordpress theme
  • 上海做网站的公司怎么做谷歌这样的网站
  • 环保网站设计价格辽宁建设工程信息网联合体投标
  • 织梦模板大气网站建设类网站模板php做网站主题
  • 各大网站大全电商网站建设网络公司
  • 泉州网页模板建站广东基层团组织建设部网站
  • 深圳龙华建设局官方网站织梦网站程序模板
  • 惠州网站建设米普可思微信小程序界面设计
  • 自己做网站需要学什么东西花溪网站建设
  • Linux-vmware虚拟机开发环境安装
  • 手表购物网站排名慈溪专业做网站公司
  • 网站专业建设网站论坛做斑竹