• [leetcode]543. Diameter of Binary Tree二叉树的直径


    题目中的直径定义为:

    任意两个节点的最远距离

    没想出来,看的答案

    思路是:diameter = max(左子树diameter,右子树diameter,(左子树深度+右子树深度+1))

    遍历并更新结果

    int res = 1;
        public int diameterOfBinaryTree(TreeNode root) {
            helper(root);
            return res-1;
        }
        public int[] helper(TreeNode root)
        {
            //两个量分别是节点深度,节点最大diameter
            if (root==null) return new int[]{0,0};
            int cur = 0;
            int[] l = helper(root.left);
            int[] r = helper(root.right);
            cur = Math.max(Math.max(l[1],r[1]),l[0]+r[0]+1);
            res = Math.max(res,cur);
            return new int[]{Math.max(l[0],r[0])+1,cur};
        }
  • 相关阅读:
    Serialize&Deserialize
    Async&Await
    Generic
    Enum
    Array
    String
    Nullable
    Collection
    Class&Struct
    Interface
  • 原文地址:https://www.cnblogs.com/stAr-1/p/8395000.html
Copyright © 2020-2023  润新知