描述
求给定二叉树的最大深度,
深度是指树的根节点到任一叶子节点路径上节点的数量。
最大深度是所有叶子节点的深度的最大值。
数据范围:0 \le n \le 1000000≤n≤100000,树上每个节点的val满足 |val| \le 100∣val∣≤100
要求: 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
示例1
输入:
{1,2}
复制
返回值:
2
复制
示例2
输入:
{1,2,3,4,#,#,5}
复制
返回值:
3
解题思路及方法
很简单的递归,根节点高度加上最长的子树高度,一直递归即可。
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型
*/
public int maxDepth (TreeNode root) {
// write code here
if (root == null) return 0;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
}
结果如下:
网友评论