题目:
就是来计算一棵二叉树的最大深度。首先我们设想,二叉树的最大深度,就是由最底层的深度所决定,但是具体是左子树还是右子树的深度,这个就得根据具体这棵树的结构决定了,那么我们如何来计算呢?首先我想到的是用递归来计算,就是从左子树和右子树来看,通过递归去遍历。
<span style="font-size:14px;">class TreeNode
{
int val;
TreeNode left;
TreeNode right;
TreeNode(int x)
{
x = val;
}
}
public class Solution
{
int length = 0;
public int maxDepth(TreeNode root)
{
if(root == null)
return 0;
int leftDepth = maxDepth(root.left) + 1;
int rightDepth = maxDepth(root.right) + 1;
length = leftDepth > rightDepth ? leftDepth : rightDepth;
return length;
}
}</span>
这里的那个方法中用了递归,直到遇到叶子节点为止,那么这课二叉树的遍历也就结束了,这样这个二叉树的深度也就求出来了。
这个递归过程有点难想到,它里面是一层套着一层循环,但是最后返回的结果是到第一次开始进入这个递归的那个地方开始。