[Leetcode 104]二叉树最大深度Maximum Depth of Binary Tree


题目

求二叉树的深度,即根节点出发的最长路径上点的个数,即最长路径+1(本身这个点

https://leetcode.com/problems/maximum-depth-of-binary-tree/

Given the root of a binary tree, return its maximum depth.

A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Example 1:

Input: root = [3,9,20,null,null,15,7]
Output: 3

Example 2:

Input: root = [1,null,2]
Output: 2

Example 3:

Input: root = []
Output: 0

Example 4:

Input: root = [0]
Output: 1

思路

DFS思路参考最长直径https://leetcode.com/problems/diameter-of-binary-tree/

这里只用找到一边,不用相加,所以是max(left,right)

代码

class Solution {
        public int maxDepth(TreeNode root) {
            int ans=dfs(root,0);
            return ans;
        }

        public int dfs(TreeNode root,int ans){
            if(root==null)
                return 0;
            int left=dfs(root.left,ans);
            int right=dfs(root.right,ans);
            ans+=Math.max(left,right);
            return ans+1;
        }
}