Description:
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
提供一个二叉树,查找它的最小深度,这个最小深度大小是沿着根向下到最近的叶子节点的节点数。
public class Solution {
public int run(TreeNode root) {
//采用深度优先遍历
if(root == null)return 0;
if(root.left == NULL && root.right == NULL)return 1;
if(root.left == null)return run(root.right)+1;
if(root.right == null)return run(root.left)+1;
else {
int depthLeft = run(root.left);
int depthRight = run(root.right);
if(depthLeft <= depthRight)return depthLeft+1;
else return depthRight+1;
}
}
}
广度优先的方法也可以。
注意:
最小深度,对于双子树,最小深度为左右子树的最小值,对于单子树,其最小深度为左右深度中为空的一侧子树(因为有这侧的子树为0)
最大深度无此限制。