输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

例如:

给定二叉树 [3,9,20,null,null,15,7]

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。

 

提示:

  1. 节点总数 <= 10000

注意:本题与主站 104 题相同:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

Related Topics
  • 深度优先搜索
  • 广度优先搜索
  • 二叉树

  • 👍 189
  • 👎 0
  • 深搜模板直接套用

    1. dfs()方法返回当前节点下的最大深度
    2. 如果当前节点有值,深度加1
    3. 递归左右节点,返回左右节点的最大深度
    4. 左右节点的最大深度中返回较大的那个
    class Solution {
    
        public int maxDepth(TreeNode root) {
            if (root==null){
                return 0;
            }
            return dfs(root,0);
        }
    
        public int dfs(TreeNode node, int deep){
            if (node==null){
                return deep;
            }
            deep++;
            int left = dfs(node.left,deep);
            int right = dfs(node.right,deep);
    
            return Math.max(left,right);
        }
    }