LeetCode(101)-minimum-depth-binary-tree二叉樹最小深度

給定一棵二叉樹,找到它的最小深度。
最小深度問題就是就最短路徑的節點個數

/*

思路:
遞歸,若爲空樹返回0;
若左子樹爲空,則返回右子樹的最小深度+1;(加1是因爲要加上根這一層,下同)
若右子樹爲空,則返回左子樹的最小深度+1;
若左右子樹均不爲空,則取左、右子樹最小深度的較小值,+1;
 */
public class l101_minimum_depth_binarytree {
    class TreeNode{
        int value;
        TreeNode left;
        TreeNode right;
        TreeNode(int x){
            value=x;
        }
    }
//遞歸,自頂向下
    public int run(TreeNode root) {
        if(root==null)
            return 0;
        if(root.left==null&&root.right==null)
            return 1;
        else{
            if(root.left==null){
                return run(root.right)+1;
            }
            if(root.right==null){
                return run(root.left)+1;
            }
        }
        return Math.min(run(root.left),run(root.right))+1;

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章