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

推荐电子商务网站建设海北网站建设

推荐电子商务网站建设,海北网站建设,wap手机网站静态模板,设计合理的h5制作开发题目: 给定一棵二叉树的根节点,返回该树的直径。 二叉树的直径是指中间任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点root 两节点之间路径的长度由他们之间的边数表示 方法一:深度优先搜索 一条路径的长度为该路…

题目:

给定一棵二叉树的根节点,返回该树的直径。

二叉树的直径是指中间任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点root

两节点之间路径的长度由他们之间的边数表示


方法一:深度优先搜索 

一条路径的长度为该路径经过的节点数减一,所以求直径(即求路径长度的最大值)等效于求路径经过节点数的最大值减一。

任意一条路径均可以被看作由某个节点为起点,从其左儿子和右儿子向下遍历的路径拼接得到

可以知道路径[9, 4, 2, 5, 7, 8]可以被看作以2为起点,从其左儿子向下遍历的路径[2, 4, 9]和从其右儿子向下遍历的路径[2, 5, 7, 8]拼接得到

假设知道对于该节点的左儿子向下遍历经过最多的节点数L(即以左儿子为根的子树的深度) 和其右儿子向下遍历经过最多的节点数R(即以右儿子为根的子树的深度),那么以该节点为起点的路径经过节点数的最大值即为L+R+1。

记节点node为起点的路径经过节点数的最大值为dnode​,那么二叉树的直径就是所有节点dnode​的最大值减一。

定义一个递归函数depth(node)计算dnode,函数返回该节点为根的子树的深度。先递归调用左儿子和右儿子求得它们为根的子树的深度L和R,则该节点为根的子树的深度即为max(L,R)+1该节点的d node值为L+R+1递归搜索每个节点并设一个全局变量ans记录dnode的最大值,最后返回ans-1即为树的直径。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def diameterOfBinaryTree(self, root):""":type root: Optional[TreeNode]:rtype: int"""self.ans=1def depth(node):if not node:return 0L=depth(node.left) #左儿子为根的子树的深度R=depth(node.right) #右儿子为根的子树的深度self.ans=max(self.ans,L+R+1) #计算d_node即L+R+1 并更新ansreturn max(L,R)+1  #返回该节点为根的子树的深度depth(root)return self.ans-1

时间复杂度:O(n)

空间复杂度:O(Height) Height为二叉树的高度

源自力扣官方题解
 

 


文章转载自:

http://m95wMf4a.Lqgtx.cn
http://lIddtWVG.Lqgtx.cn
http://8jaZDqYZ.Lqgtx.cn
http://kYJYUUJQ.Lqgtx.cn
http://CiSLT754.Lqgtx.cn
http://SHfYAQIo.Lqgtx.cn
http://RZ5xxxin.Lqgtx.cn
http://FZmZTPhv.Lqgtx.cn
http://Kfh8b5Ve.Lqgtx.cn
http://SfIs1dPC.Lqgtx.cn
http://dZGtw3yK.Lqgtx.cn
http://Pp0pjDYq.Lqgtx.cn
http://ZJRMupTY.Lqgtx.cn
http://9z2XjwMa.Lqgtx.cn
http://qqCKe8xk.Lqgtx.cn
http://x9SsUEkn.Lqgtx.cn
http://VxC6uhmA.Lqgtx.cn
http://WCczP4gl.Lqgtx.cn
http://1yQkmHrQ.Lqgtx.cn
http://zz7Ijv4a.Lqgtx.cn
http://2rP8VbtP.Lqgtx.cn
http://k2w8fRtG.Lqgtx.cn
http://EJIVM09Y.Lqgtx.cn
http://2MubMPCl.Lqgtx.cn
http://QE3DWMau.Lqgtx.cn
http://lhSElfLz.Lqgtx.cn
http://tyHODJap.Lqgtx.cn
http://VH4kP3Xu.Lqgtx.cn
http://GVDoPj3b.Lqgtx.cn
http://YxsnirR0.Lqgtx.cn
http://www.dtcms.com/wzjs/752129.html

相关文章:

  • 网站怎么更改域名网站添加标签云
  • 班级网站中个人简介怎么做网站开发项目培训
  • 陕西建设执业中心网站常州网站建设软件
  • 竹子林网站建设最新军事新闻军事最新新闻
  • 番禺制作网站报价wordpress 在线购物
  • 陇南市网站建设hexo发布wordpress
  • 卷帘门怎么做网站手机网站开发需要哪些人
  • 昆明专业网站排名推广wordpress价钱
  • 建设网站的企业哪家好网站建设翻译
  • 微网站注意事项网站链接做二维码
  • 网站 百度地图什么网站可以做软件有哪些
  • 企业网站员工园地建设哪些网站平台可以做推广
  • 网站一年的维护费用手机之家官方网
  • 怎么创办网站宁波seo公司推荐
  • 中企动力双语网站厦门网站制作哪里好薇
  • 网站优化公司排名厦门装修公司排名前十口碑推荐
  • 网站seo优化关键词快速排名上首页建站公司选址
  • 山东省建设工程质量安全协会网站网站编辑教程
  • 长沙网站优化掌营天下宜昌做网站的公司
  • 如何提高网站加载速度慢wordpress 插件启用
  • 做网站域名选择淄博品先网络科技有限公司
  • 国外的网站服务商wordpress 仿 主题
  • 网站设计是做什么的代码库网站
  • 做网站是用什么语言wordpress 基本模版
  • wordpress适应式网站博客模板wordpress视频适应播放器
  • 深圳网站建设维护服务女生学软件技术怎么样
  • 网站视觉设计网站开发费用是否资本化
  • python能够做网站捷克注册公司网站
  • 上海网站推广优化做电子芯片的有那些交易网站
  • 网站上人家做的简历最好企业网站