OJ练习第164题——具有所有最深节点的最小子树

具有所有最深节点的最小子树

力扣链接:865. 具有所有最深节点的最小子树

力扣链接:1123. 最深叶节点的最近公共祖先

题目描述

给定一个根为 root 的二叉树,每个节点的深度是 该节点到根的最短距离 。

返回包含原始树中所有 最深节点 的 最小子树 。

如果一个节点在 整个树 的任意节点之间具有最大的深度,则该节点是 最深的 。

一个节点的 子树 是该节点加上它的所有后代的集合。

示例

OJ练习第164题——具有所有最深节点的最小子树_第1张图片

Java代码

class Solution {
    public TreeNode lcaDeepestLeaves(TreeNode root) {
        if(root != null){
            int ldep = maxDeep(root.left), rdep = maxDeep(root.right);
            if(ldep == rdep) return root;
            else if(ldep > rdep) return lcaDeepestLeaves(root.left);
            else if(rdep > ldep) return lcaDeepestLeaves(root.right);
        }
        return null;
    }
    public int maxDeep(TreeNode root) {
        if(root == null) { 
            return 0;
        }else {
            return Math.max(maxDeep(root.left), maxDeep(root.right)) + 1;
        }
    }
}

你可能感兴趣的:(OJ练习,leetcode,java)