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

潍坊网站建设wf3aso优化教程

潍坊网站建设wf3,aso优化教程,免费网站开发平台,提高网站权重的方法题目: 给定一个二叉树root,返回其最大深度 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数 方法一:深度优先搜索 知道了左子树和右子树的最大深度l和r,那么该二叉树的最大深度即为:max(l,r)1 而左子树和右子树的最大深…

题目:

给定一个二叉树root,返回其最大深度

二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数


方法一:深度优先搜索

知道了左子树和右子树的最大深度l和r,那么该二叉树的最大深度即为:max(l,r)+1

而左子树和右子树的最大深度又可以以同样的方式进行计算。因此可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深度时,可以先递归计算出其左子树和右子树的最大深度,然后在O(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 maxDepth(self, root):""":type root: Optional[TreeNode]:rtype: int"""if root is None:return 0else:left_height=self.maxDepth(root.left)right_height=self.maxDepth(root.right)return max(left_height,right_height)+1

时间复杂度:O(n)n为二叉树节点的个数。每个节点在递归中只被遍历一次。

空间复杂度:O(height)其中height表示二叉树的高度


方法二:广度优先搜索

广度优先搜索的队列里存放的是「当前层的所有节点」。每次拓展下一层的时候,用一个变量ans来维护拓展的次数,该二叉树的最大深度即为ans。

# 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 maxDepth(self, root):""":type root: Optional[TreeNode]:rtype: int"""if not root:return 0queue=[root] #使用一个队列(queue)来进行广度优先搜索, 初始时包含根节点 ans=0while queue: #在队列不为空时持续进行。每次循环表示遍历树的一层size=len(queue)  #获取当前队列中节点的数量,即当前层的节点数while size>0:node=queue.pop(0)if node.left:queue.append(node.left) #当前节点 node 有左子节点,就将左子节点加入队列if node.right:queue.append(node.right)#当前节点 node 有右子节点,就将右子节点加入队列size-=1  #处理完当前节点,减少层内节点计数ans+=1 #层处理完,增加深度计数器return ans

时间复杂度:O(n)每个节点只会被访问一次

空间复杂度:O(n)取决于队列存储的元素数量

源自力扣官方题解

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

相关文章:

  • 做网站不带优化的吗做推广哪个食品网站好
  • 创建网站代码是什么心悦会员免做卡网站
  • 如何快速模仿一个网站网站后台的网址忘记了
  • 经营范围 网站开发wordpress怎么配置七牛cdn加速
  • 常州二建建设有限公司官方网站深圳站建在边境
  • 网站开发工程师应聘书范文1000上海icp新增网站
  • 成都旅游网站建设网络书城网站开发 需求分析
  • 天津建设工程合同备案网站免费做网站表白
  • ipad室内装修设计软件怎么seo关键词优化排名
  • 傻瓜式建站软件下载类似站酷的设计网站
  • 设计一个网站报价网站为什么需要备案号
  • 海淀区手机网站设计服务6广州凡科公司是外包吗
  • 整站seowd mycloud wordpress
  • 做网站域名需要在哪里备案两学一做网站专题
  • 做鞋的网站电商网站营销
  • 2个淘宝可以做情侣网站么wordpress站点赏析
  • 请问做网站怎么赚钱深圳网站设计与制作
  • 深圳地产网站建设wordpress storefront
  • 吉林市市政建设集团网站fancy wordpress
  • 网站建设精英店铺如何运营和推广
  • 用js做网站网站做优化的好处
  • 建设一个社交网站需要多少钱北京网站系统开发
  • 网站建设宣传册php免费开源crm系统
  • 荥阳网站开发做的网站出现404
  • 做平面设计都关注哪些网站e时代速递搜索引擎网站建设
  • 主题公园网站建设品牌网站建设创意新颖
  • 杭州企业建站模板网站推广如何引流
  • 衣服网站模板中国互联网十大巨头
  • 展示网站动画怎么做的网站菜单怎么做
  • 公司网站兰州建设需要多少钱上海进出口博览会