104. 二叉树的最大深度
一、题目描述
二、理解
对照二叉树的递归定义:
- 如果树为空,则它是一个空树。
- 如果树不为空,它由一个根节点和两个子树组成,分别是左子树和右子树,且左子树和右子树本身也是二叉树。
采用递归形式解决问题: - 首先判断 root 是否 null,若为 null,则该树的的深度为0。
- 若 root 不为 null,则该树的最大深度为,max (左子树的最大深度, 右子树最大深度) + 1。
三、代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
return Math.max(leftDepth, rightDepth) + 1;
}
}