二叉树的深度

c博客链接:

二叉树的深度

题目链接:

题目

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

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

3
/
9 20
/
15 7
返回它的最大深度 3 。

题解

使用递归,每次遍历节点,判断是否为叶子节点,如果不是叶子节点,则继续遍历并把深度加一,如果是叶子节点比较当前深度是否比前面深度大,并且返回。

做这类题目的思路是:

1.先确定输入,输出。

2.确定最小递归单元。

3.怎么由最小递归单元得出最后结果。

代码

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

结果

出来混总是要还的
原文地址:https://www.cnblogs.com/ping2yingshi/p/14989517.html