• [GeeksForGeeks] Diameter of a Binary Tree


    The diameter of a tree (sometimes called the width) is the number of nodes on the longest path between two leaves in the tree. The diagram below shows two trees each with diameter nine, the leaves that form the ends of a longest path are shaded (note that there is more than one path in each tree of length nine, but no path longer than nine nodes).

     The diameter of a tree T is the largest of the following.

    1. the diameter of T's left subtree

    2. the diameter of T's right subtree

    3. the longest path between leave nodes that goes through the root of T. This can be computed from the heights of the subtrees of T.

    O(n) runtime, O(h) space, h is the height of the given binary tree.

     1 class ReturnEntry {
     2     int diameter;
     3     int height;
     4     ReturnEntry(int d, int h) {
     5         diameter = d;
     6         height = h;
     7     }
     8 }
     9 public class DiameterOfBinaryTree {
    10     public static int getDiameter(TreeNode root) {
    11         return getDiameterRecur(root).diameter;
    12     }
    13     private static ReturnEntry getDiameterRecur(TreeNode node) {
    14         ReturnEntry ret = new ReturnEntry(0, 0);
    15         if(node == null) {
    16             return ret;
    17         }
    18         ReturnEntry left = getDiameterRecur(node.left);
    19         ReturnEntry right = getDiameterRecur(node.right);
    20         ret.diameter = Math.max(left.height + right.height + 1, Math.max(left.diameter, right.diameter));
    21         ret.height = Math.max(left.height, right.height) + 1;
    22         return ret;
    23     }
    24 }

    Related Problems

    [LintCode] Binary Tree Longest Consecutive Sequence II

  • 相关阅读:
    Python
    Python
    Python
    #2035:人见人爱A^B
    #2030:汉字统计--统计给定文本文件中汉字的个数
    #2028:Lowest Common Multiple Plus(n个数的最小公倍数)
    幂次方的四种快速取法(不使用pow函数)
    爬楼梯:经典动态规划+递归法
    最小生成树算法【图解】:一文带你理解什么是Prim算法和Kruskal算法
    KMP算法-从头到尾彻底理解KMP
  • 原文地址:https://www.cnblogs.com/lz87/p/7524183.html
Copyright © 2020-2023  润新知