美文网首页
543. 二叉树的直径

543. 二叉树的直径

作者: 名字是乱打的 | 来源:发表于2021-12-24 01:30 被阅读0次

    一 题目:

    二 思路:

    • 分析下,二叉树的最长路径某个结点的左孩子最大深度加右孩子的最大深度
    • 我们只需要找出每一个节点的 左子树最大深度 + 右子树最大深度 的值,然后不断更新全局变量max 就行了

    三 代码:

    class Solution {
        int max;
        public int diameterOfBinaryTree(TreeNode root) {
            //分析下,二叉树的最长路径某个结点的左孩子最大深度加右孩子的最大深度
            max=0;
            dfs(root);
            return max;
        }
    
        /**
         * 返回树的深度
         */
        private int dfs(TreeNode root) {
            if (root==null){
                return 0;
            }
            //左子树的深度
            int lDeep= dfs(root.left);
            //右子树的深度
            int rDeep= dfs(root.right);
    
            max=Math.max(max,lDeep+rDeep);
            return Math.max(lDeep,rDeep)+1;
        }
    }
    

    相关文章

      网友评论

          本文标题:543. 二叉树的直径

          本文链接:https://www.haomeiwen.com/subject/zvzkqrtx.html