1 | 给定一个二叉树,找出其最小深度。 |
解题思路:
和二叉树的最大深度类似,但在递归的结束条件上有所不同,我们先回忆以下二叉树的最大深度问题:
1 | public int maxHeight(TreeNode node){ |
接下来言归正传,我们在找最小深度时,我们要明确什么是最小深度,就是根节点到最近叶子节点路径上节点的数量,那么我们在递归时可能遇到下面三种情况:
1.当root的左右子树都为null,那么这个节点就是叶子节点,返回1;
2.当root的左或右子树为null时,那么这个节点不是叶子节点,那么我们只能找到这个root不为空的子树的深度;
3.当root的左右子树都不为null时,我们返回左右子树中较小的深度+1;
1 | public int minHeight(TreeNode node){ |
