题目
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
算法
public class P111 {
int minHeight = Integer.MAX_VALUE;
public int minDepth(TreeNode root) {
if (root == null) {
return 0;
}
preOrder(root,0);
return minHeight;
}
public void preOrder(TreeNode Node,int level)
{
if (Node != null)
{
level++;
if(Node.left==null&&Node.right==null&&level<minHeight){
minHeight = level;
}
preOrder(Node.left,level);
preOrder(Node.right,level);
}
}
}
思路:
- 前序遍历整棵树
- 依次记录每个叶子节点到根节点的长度
- 找到最短的长度即为最小树高