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

鄂尔多斯建设招投标网站泉州网站建设 推广

鄂尔多斯建设招投标网站,泉州网站建设 推广,网站服务器租用价格多少钱一年,泾川县建设局网站二叉树的直径:树中任意两个节点间最长路径的长度。这个路径可能经过根节点,也可能不经过。 算法思路 采用深度优先搜索(DFS)的后序遍历方式,计算每个节点的左右子树高度,并在过程中更新最大直径。 代码解析 var diameterOfBin…

二叉树的直径:树中任意两个节点间最长路径的长度。这个路径可能经过根节点,也可能不经过。

算法思路

采用深度优先搜索(DFS)的后序遍历方式,计算每个节点的左右子树高度,并在过程中更新最大直径。

代码解析

var diameterOfBinaryTree = function(root) {let ans = 0  // 用于记录当前找到的最大直径const dfs = (node) => {if (node === null) {return 0  // 空节点的高度为0}// 递归计算左右子树的高度const lLen = dfs(node.left)const rLen = dfs(node.right)// 更新最大直径:当前节点作为"转折点"时的路径长度ans = Math.max(ans, lLen + rLen)// 返回当前节点的高度(左右子树中较高的那个 + 1)return Math.max(lLen, rLen) + 1}dfs(root)  // 从根节点开始遍历return ans
};

关键点解释

  1. 后序遍历:先处理左右子树,再处理当前节点,这确保了在计算当前节点时,其子树的信息已经计算完成。

  2. 高度计算:对于每个节点,我们计算其左右子树的高度:

    • lLen 是左子树的高度
    • rLen 是右子树的高度
  3. 直径更新:直径是通过某个节点的最长路径,这个路径长度等于左子树高度 + 右子树高度。我们不断用这个值更新全局最大值 ans

  4. 返回值:每个节点返回的是以它为根的子树的高度,这是为了父节点能够计算它自己的直径。

示例分析

考虑以下二叉树:

      1/ \2   3/ \     4   5    

计算过程:

  1. 节点4:lLen=0, rLen=0 → ans=0, 返回1
  2. 节点5:lLen=0, rLen=0 → ans=0, 返回1
  3. 节点2:lLen=1(来自4), rLen=1(来自5) → ans=2, 返回2
  4. 节点3:lLen=0, rLen=0 → ans=2, 返回1
  5. 节点1:lLen=2(来自2), rLen=1(来自3) → ans=3, 返回3

最终直径为3(路径[4,2,1,3]或[5,2,1,3]的长度)

时间复杂度

  • 时间复杂度:O(n),其中n是树中的节点数。每个节点只被访问一次。
  • 空间复杂度:O(h),其中h是树的高度。这是递归调用栈的空间消耗。

文章转载自:

http://OzxDAY4y.kxrLd.cn
http://1uaY4WED.kxrLd.cn
http://HOWZY6uq.kxrLd.cn
http://MwNnDgs1.kxrLd.cn
http://lTAXE3E4.kxrLd.cn
http://xL8PPkyl.kxrLd.cn
http://ouitNLPT.kxrLd.cn
http://uZzsugiA.kxrLd.cn
http://7M0DVPfm.kxrLd.cn
http://by3ZQE8H.kxrLd.cn
http://NtVZXAfe.kxrLd.cn
http://ZjIagpm2.kxrLd.cn
http://jQtOJk4b.kxrLd.cn
http://eOYugpuh.kxrLd.cn
http://5fgs3y0y.kxrLd.cn
http://kRSwShu4.kxrLd.cn
http://5SIxWaqp.kxrLd.cn
http://21E1Yq5X.kxrLd.cn
http://YgM1bx7K.kxrLd.cn
http://yjzhKbMP.kxrLd.cn
http://KqaCafGF.kxrLd.cn
http://PS3HT2P7.kxrLd.cn
http://pIhveTcT.kxrLd.cn
http://yNf6F05R.kxrLd.cn
http://8oGJpKU5.kxrLd.cn
http://AU2hr9fy.kxrLd.cn
http://Z7RgUxen.kxrLd.cn
http://rzdqgw88.kxrLd.cn
http://QjKRrQiM.kxrLd.cn
http://N2Uvfmim.kxrLd.cn
http://www.dtcms.com/wzjs/721817.html

相关文章:

  • 个人建设网站制作做网站如何兼职
  • 手机网站建站多少钱行业门户网站的优化怎么做yps行业门户系统
  • 做网站能用假图片吗您备案的网站名称没有关联性
  • 类似电影天堂的网站 怎么做wordpress增加移动端
  • seo网站自动推广学校网站的英文
  • 一个网站需要多少网页项目网站建设业务分析
  • 浙江网站建设哪家最好工程公司资质等级
  • 龙岗网站维护追天网站建设 优帮云
  • 做网站泰州新闻软文自助发布平台
  • 网上哪里有辅导高考生做难题的网站阳泉软件定制网站建设
  • 沈阳企业网站制作哪家好做网站是用什么语言
  • 如何建立网站详细流程wordpress 投稿者 权限
  • 网站建设需要看什么书网站关键词排名系统
  • 天水网站建设公司排名贵阳seo推广
  • 佛山优化网站关键词360推广 网站建设
  • 做视频网站对服务器要去中国3.15诚信建设联盟网站
  • 定远规划建设局网站wordpress upgrade文件夹
  • 做酒店网站有哪些目录北京海淀建设工程律师服务
  • 做网站的开题报告如何制作网页设计
  • 济南百度网站开发网站网站建设的原则有哪些
  • 做网站的上海公司有哪些网站托管运营方案
  • 电商网站简单html模板下载网站未备案做seo会被k吗
  • 网站建设属于哪一类商标杭州小程序开发
  • 校园网站建设项目总结报告网络规划建设方案
  • 购物网站需要做的功能梧州论坛看点
  • 用订制音乐网站做的音乐算原创吗网站优化外链怎么做
  • 西安做网站程序网站开发实验室
  • 查询个人信息最全的网站图片分享功能网站开发
  • 天津中小企业建设网站电子商务网站建设 教案
  • 创业平台网站谷歌搜索引擎