【Leetcode Top 100】104. 二叉树的最大深度
问题背景
给定一个二叉树 r o o t root root,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
数据约束
- 树中节点的数量在 [ 0 , 1 0 4 ] [0, 10 ^ 4] [0,104] 区间内。
- − 100 ≤ N o d e . v a l ≤ 100 -100 \le Node.val \le 100 −100≤Node.val≤100
解题过程
标准的数递归题,写对递归边界和递归体就能保证返回正确的结果。
具体实现
/*** 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 leftMax = maxDepth(root.left);int rightMax = maxDepth(root.right);return Math.max(leftMax, rightMax) + 1;}
}