0
点赞
收藏
分享

微信扫一扫

力扣 543 二叉树的直径

杰森wang 2021-09-21 阅读 42

题意:计算二叉树的直径

思路:后跟遍历树的每一个节点,并取得最大值,详情见代码

思想:树的后跟遍历

复杂度:时间O(n),空间O(n)

class Solution {
    int max = 0;
    public int diameterOfBinaryTree(TreeNode root) {
        find(root);
        return max;
    }
    // 获取最长的子树
    int find(TreeNode root) {
        if(root == null) 
            return 0;
        // 获取最长的左子树
        int left = find(root.left);
        // 获取最长的右子树
        int right = find(root.right);
        // 获取最长的已经遍历过的左右子树和
        max = Math.max(max, left+right);
        // 返回最长的子树
        return Math.max(left, right) + 1;
    }
}
举报

相关推荐

0 条评论