Data structures 二叉树的直径是多少?直径是否需要通过根节点的最长路径?

Data structures 二叉树的直径是多少?直径是否需要通过根节点的最长路径?,data-structures,tree,binary-tree,binary-search-tree,Data Structures,Tree,Binary Tree,Binary Search Tree,树的直径T是以下数量中的最大值: T的左子树的直径 T的右子树的直径 穿过T根的叶间最长路径(可根据T子树的高度计算)。 我不想要代码,只是想知道什么是正确的 请检查链接 否,二叉树的直径不必通过其根元素(例如:当二叉树不平衡时) 让我们来看看: 二叉树的叶子:没有子节点的节点 路径:连接两条路径的一组交替的节点和边 更简单地说(不是确切的定义),直径是二叉树中任意两个叶节点之间的最长路径 根据以下公式推断:穿过T根的叶间最长路径?那么,这一点是什么意思呢。我已经检查过,三个点是从他们复制的

树的直径T是以下数量中的最大值:

  • T的左子树的直径
  • T的右子树的直径

  • 穿过T根的叶间最长路径(可根据T子树的高度计算)。 我不想要代码,只是想知道什么是正确的
请检查链接


否,二叉树的直径不必通过其根元素(例如:当二叉树不平衡时)

让我们来看看:

二叉树的叶子:没有子节点的节点
路径:连接两条路径的一组交替的节点和边

更简单地说(不是确切的定义),直径是二叉树中任意两个叶节点之间的最长路径


根据以下公式推断:

穿过T根的叶间最长路径?那么,这一点是什么意思呢。我已经检查过,三个点是从他们复制的吗?考虑左边的歪斜树,但是左边节点包含两个子,那么那个直径是多少?tree@MayurRaikwarIeaf节点是二叉树中最底层的节点(定义是它不包含和子节点)根据极客的解决方案,他们正在计算左子树的直径+右子树的直径+1(根)。这是一个错误的解决方案,因为根据定义:“直径是任意两个叶节点之间的最长路径”,那么这两个叶节点只能存在于左侧或右侧。极客的解决方案是计算左子树的高度(不是直径)和右子树的高度(不是直径)+1(根),这将给出通过根的路径长度。直径(优化解决方案)计算为最大值(lh+rh+1,最大值(ldiameter,rdiameter))