Leetcode111.二叉树的最小深度 Minimum Depth of Binary Tree(Java)
##Tree##, ##Depth-first Search##, ##Breadth-first Search##
二叉树的最小深度,可以采用DFS、BFS
DFS对应二叉树的后序遍历,递归计算每个节点的最小深度
- 结点为空时,返回
0
- 结点的左儿子不为空,右儿子为空,返回
左子树最小深度 + 1
- 结点的右儿子不为空,左儿子为空,返回
右子树最小深度 + 1
- 结点的左右儿子都不为空,返回
左右子树最小深度 + 1
**时间复杂度:**O(n)
class Solution {
private int mind = Integer.MAX_VALUE;
public int minDepth(TreeNode root) {
if (root == null) return 0;
if (root.left != null && root.right == null) return minDepth(root.left) + 1;
if (root.right != null && root.left == null) return minDepth(root.right) + 1;
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}
}