1. 程式人生 > 其它 >力扣簡111 二叉樹的最小深度

力扣簡111 二叉樹的最小深度

最開始忽略了左子樹為空還得計算右子樹的葉子節點深度,直接分為左空右空和其他,對於其他認為直接返回0,導致會直接歸入其他而報錯!

改正後效果也挺一般:

package leetcode01;

//給定一個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
public class Solution111 {
    public static int minDepth(TreeNode root) {
        if(root==null) {
            return 0;
        }
        else {
            
if(root.left==null && root.right!=null) { return(minDepth(root.right)+1); } else if(root.left!=null && root.right==null) { return(minDepth(root.left)+1); } else { return(Math.min(minDepth(root.left), minDepth(root.right))+1); } } }
public static void main(String[] args) { // TODO Auto-generated method stub TreeNode root=new TreeNode(3,new TreeNode(9),new TreeNode(20,new TreeNode(15),new TreeNode(7))); //TreeNode root=new TreeNode(2,null,new TreeNode(3,null,new TreeNode(4,null,new TreeNode(5,null,new TreeNode(6)))));
System.out.print(minDepth(root)); } }