【Java】 劍指offer(55-1) 二叉樹的深度

 

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

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

題目

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

思路

  簡潔理解:測試

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

 

測試算例 url

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

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

  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.深度從遞歸的角度理解,很贊,要記住。get

  

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

相關文章
相關標籤/搜索