1. 程式人生 > >【Java】 劍指offer(55-1) 二叉樹的深度 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集

【Java】 劍指offer(55-1) 二叉樹的深度 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集

 

本文參考自《劍指offer》一書,程式碼採用Java語言。

更多:《劍指Offer》Java實現合集  

題目

  輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的/結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

思路

  簡潔理解:

  樹的深度=max(左子樹深度,右子樹深度)+1,採用遞迴實現。

 

測試算例 

  1.功能測試(左斜樹、右斜樹、普通樹)

  2.邊界值測試(一個結點)

  3.特殊測試(null)

Java程式碼

//題目:輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的
//結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

public class TreeDepth {
	public class TreeNode {
	    int val = 0;
	    TreeNode left = null;
	    TreeNode right = null;

	    public TreeNode(int val) {
	        this.val = val;
	    }
	}
	
    public int TreeDepth(TreeNode root) {
        if(root==null)
            return 0;
        int left=TreeDepth(root.left);
        int right=TreeDepth(root.right);
        return Math.max(left+1,right+1);
    }
}

  

收穫

  1.深度從遞迴的角度理解,很贊,要記住。

  

更多:《劍指Offer》Java實現合集