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

中国企业网官方网站简单代码编程教学

中国企业网官方网站,简单代码编程教学,张戈博客wordpress主题,有多少个购物网站二叉树的直径 题目题解解释 题目 543. 二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 题解 …

二叉树的直径

    • 题目
    • 题解
    • 解释

题目

543. 二叉树的直径

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

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

两节点之间路径的 长度 由它们之间边数表示。
在这里插入图片描述

题解

思路:找到左边最长和右边最长

# 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 = 0def dfs(root):if root is None:return -1l_len = dfs(root.left) + 1r_len = dfs(root.right) + 1self.ans = max(self.ans, l_len + r_len)return max(l_len, r_len)dfs(root)return self.ans   

解释

假设我们有以下的二叉树:

     1/ \2   3/ \  4   5

步骤 1: 初始调用
diameterOfBinaryTree(root) 调用 dfs(root),即传入根节点 1。

步骤 2: 递归计算深度

  • 对节点 1:

    • 左子树:递归调用 dfs(root.left),即节点 2。
  • 对节点 2:

    • 左子树:递归调用 dfs(root.left),即节点 4。

      • 节点 4 是叶子节点,因此返回 0。
    • 右子树:递归调用 dfs(root.right),即节点 5。

      • 节点 5 是叶子节点,因此返回 0。
    • 对节点 2:l_len = 0 + 1 = 1,r_len = 0 + 1 = 1,self.ans = max(0, 1 + 1) = 2,返回 max(1, 1) = 1。

  • 对节点 1:

    • 左子树:返回节点 2 的深度 1。

    • 右子树:递归调用 dfs(root.right),即节点 3。

      • 节点 3 是叶子节点,因此返回 0。
    • 对节点 1:l_len = 1 + 1 = 2,r_len = 0 + 1 = 1,self.ans = max(2, 2 + 1) = 3,返回 max(2, 1) = 2。

步骤 3: 返回结果
最终返回 self.ans = 3,表示二叉树的直径为 3,即从节点 4 到节点 5,通过节点 2 再到节点 1,该路径包含 3 个节点。

http://www.yayakq.cn/news/53833/

相关文章:

  • 网站建设弹窗代码阜阳网站建设电话
  • 上海网站建设怎么产品推广网站设计
  • 怎样制作html个人网站wordpress支持多少并发
  • 做网站需要准备的素材优化关键词的步骤
  • 在网站上放广告公司网站没有备案是不是违法的
  • 网站建设哪家好?看这里网站价格套餐
  • 三亚网站建设哪家好第一接单网平台
  • 东莞做网站做seo优化外包网络公司广州网站排名怎么优化
  • 成都网站seo公司erp系统免费版
  • 做电力项目信息的网站网游大全
  • 网站建设心得.docdw网页制作源代码
  • 株洲网站制作怎么seo快速排名
  • 上海网站开发与设产品如何做网络推广
  • 自己做网站挂广告怎么赚钱吗网站开发 会员模块
  • 网站中下拉列表框怎么做灵动网站建设
  • 怎么免费建公司网站杭州市住房和城乡建设局官网
  • 建设银行徐州分行网站专业网站开发哪家专业
  • 个人买卖网站怎么做网站推广岗位的要求
  • 网站开发 模块化花茶网站模板
  • 网站标题 没有排名设计类网站策划案
  • 保定网站建设制作wordpress 主页布局
  • 淘宝网站c 设计怎么做的网站建设上海网站制作
  • 长沙网站建设公司网站如何做关键词seo优化
  • 网站建设嘉兴怎么让自己上百度
  • 图表设计 网站西安网站建设有那些公司好
  • 苏州网站建设技术python做网站性能
  • 企业营销型网站类型怎样进行seo推广
  • 网站建设暖色调赣州网站建设公司
  • 东莞机械网站建设帝国cms小说网站模板下载
  • 高端网站设计企业网站建设在什么网站可以接国外的模具做