解题思路:
用后序遍历
题目要求的最小深度为根节点到叶子节点的最小深度,注意是到根节点,所以如图所示假设(没有9这个节点)是需要返回3的,而不是1(根节点左子树为空的情况),于是需要加两层判断
其余部分可参考求最大深度的思路,有一定相似之处
class Solution {public int minDepth(TreeNode root) {if (root == null) return 0;int leftDepth = minDepth(root.left);int rightDepth = minDepth(root.right);if (root.left == null && root.right != null) return 1 + rightDepth;if (root.left != null && root.right == null) return 1 + leftDepth;int res = 1 + Math.min(leftDepth, rightDepth);return res;}
}