zoukankan      html  css  js  c++  java
  • 543. Diameter of Binary Tree

    Given a binary tree, you need to compute the length of the diameter of the tree.

    The diameter of a binary tree is the length of the longest path between any two nodes in a tree.

    This path may or may not pass through the root.

    Example:
    Given a binary tree

              1
             / 
            2   3
           /      
          4   5    
    

    Return 3, which is the length of the path [4,2,1,3] or [5,2,1,3].

    Note: The length of path between two nodes is represented by the number of edges between them. 

    路径未必经过root结点,

    参考

    1

    2

    34

    5678

    最长的跨度是第四层的结点之间,比如5和8的跨度是4,53248

    经过观察可以发现,最大路径存在于,左子结点和右子结点之间。

    比如上面第一个例子的34和35,

    第二个例子根结点的右结点不存在

     还有一种情况

    1

    2

    3

    单层的,叶结点和根结点距离最大

    https://www.geeksforgeeks.org/diameter-of-a-binary-tree/

    The diameter of a tree T is the largest of the following quantities:

    * the diameter of T’s left subtree
    * the diameter of T’s right subtree
    * the longest path between leaves that goes through the root of T (this can be computed from the heights of the subtrees of T) 

     https://www.jianshu.com/p/6e3125b552f4

    本题要求最长路径长,可以转化为求最长路径中的节点个数-1
    最长路径包含以下三种情况:

    1 根节点包含在最长路径中,则节点个数 = 左树高 + 右树高 + 1
    2 最长路径在左子树中,则可以求左子树的最长路径的节点数目
    3 最长路径在右子树中,则可以求右子树的最长路径的节点数目

    对这三种情况进行比较,即可求出最长路径

  • 相关阅读:
    SIGGRAPH
    用JSP实现的商城购物车模块
    大数运算
    编写高质量代码改善java程序的151个建议——导航开篇
    Spring3.0 AOP 具体解释
    HDU3400+三分
    Java实现BFS广度优先查找
    Java实现BFS广度优先查找
    Java实现BFS广度优先查找
    Java实现BFS广度优先查找
  • 原文地址:https://www.cnblogs.com/chucklu/p/11053242.html
Copyright © 2011-2022 走看看