题目描述
输入一棵二叉树的根结点,求该树的深度。
从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
样例
输入:二叉树[8, 12, 2, null, null, 6, 4, null, null, null, null]如下图所示:
8
/ \
12 2
/ \
6 4
输出:3
算法1
(递归搜索) $O(n^2)$
1.如何递归 返回最大层次,可以走就走;
2.比较左边和右边最大值
返回就好
时间复杂度
参考文献
C++ 代码
void dfs(TreeNode *root,int l)
{
if(root->left!=NULL) dfs(root->left,l+1);
if(root->right!=NULL) dfs(root->right,l+1);
ans=max(ans,l);
}
int treeDepth(TreeNode* root) {
if(root==NULL) return 0;
ans=0;
dfs(root,1);
return ans;
}
private:
int ans;
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla