剑指offer55a 二叉树的深度

(直接看55b即可)

首先想到的肯定是dfs,暴力解法,挨个计数到底,看哪个最长就是哪个。

但是这样时间复杂度过于高。

是有更优的解法的。

用递归,二叉树的深度每层都会加一,所以root的就是max(左子树深度,右子树深度),然后递归求解即可。

其实想想可能只是比暴力解法好了那么一丢丢。

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

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public int TreeDepth(TreeNode root) {
        if(root==null) return 0;
        
        return Math.max(TreeDepth(root.left),TreeDepth(root.right))+1;
    }
}

运行时间:14ms

占用内存:9304k

posted @ 2019-03-03 21:41  大胖子球花  阅读(55)  评论(0)    收藏  举报