题目
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its depth = 3.
分析
1 接触二叉树的第一题,先熟悉二叉树的数据结构, val, node left, node right, 构造函数,相比于链表多了一个结点
2 题目是求二叉树的深度,二叉树的深度是左右子树高度最高的那个决定,因此递归解决最简单
root 为 null 返回0 否则 取这个结点的 左右子树的高度加1
代码
public int maxDepth(TreeNode root) {
return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth((root.right))) + 1;
}