美文网首页程序员
力扣 865 具有所有最深节点的最小子树

力扣 865 具有所有最深节点的最小子树

作者: zhaojinhui | 来源:发表于2020-11-17 00:41 被阅读0次

    题意:给定一个树,返回具有最深节点的最小子树

    思路:后跟遍历树

    1. 如果节点为null,返回null
    2. 获取左右子树的最大深度
    3. 如果左右子树相等,且深度大于等于当前的最大深度,那么更新结果
    4. 返回左右子树中的较大的深度

    思想:后跟遍历

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

    class Solution {
        TreeNode res;
        int maxLevel = 0;
        public TreeNode subtreeWithAllDeepest(TreeNode root) {
            if(root == null)
                return root;
            res = root;
            get(root, 1);
            return res;
        }
        int get(TreeNode root, int level) {
            if(root == null)
                return level;
            int left = get(root.left, level + 1);
            int right = get(root.right, level + 1);
            if(left == right && left >= maxLevel) {
                maxLevel = left;
                res = root;
            }
            
            return Math.max(left, right);
        }
    }
    

    相关文章

      网友评论

        本文标题:力扣 865 具有所有最深节点的最小子树

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