最小深度是沿着从根节点到最近叶节点的最短路径的节点数量。
//树节点
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}1.先判断根节点有无节点,没有返回0;
2.在判断根节点的左右有无节点,没有返回1;
3.如果以上都不成立,再判断左右子节点是否为空,进行递归操作
4.如果左右子节点都不为空,在判断左子节点是否为空或者右子节点是否为空。
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 && root.right != null ){
int l = run(root.left);
int r = run(root.right);
return (l<r?l:r)+1;
}
if( root.left != null ){
return run(root.left)+1;
} else if ( root.right != null ) {
return run(root.right)+1;
}
return 0;
}
}
本文介绍了一种求解二叉树最小深度的算法实现,通过递归方式遍历树的左右子节点,找到从根节点到最近叶子节点的最短路径长度。文章详细解释了递归逻辑及边界条件处理。
882

被折叠的 条评论
为什么被折叠?



