码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode.104 计算二叉树的最大深度

时间:2019-12-30 09:21:14      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:计算   The   获取   nbsp   code   tree node   long   ges   note   

题目描述:给一个二叉树,返回该二叉树的最大深度

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   /   9  20
    /     15   7

return its depth = 3.

思路:

采用递归,从根节点出发,获得根节点的左子树和右子树深度,然后取其大者+1,则得到了该树最大的深度

边界条件:当前节点有子树,则继续递归,否则返回当前子树最大深度

递归前进段:当前节点有子节点,则继续递归

递归返回段:当前节点没有子节点

 

代码实现:

 

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */

class Solution {
    public int maxDepth(TreeNode root) {
        // 思路
        // 递归:
        // 从根节点出发,获取节点左子树和右子树的深度,取其大+1,则为最深深度
        // 边界条件:当前节点下是否还有子节点,有就继续向下递归,没有就返回
        // 递归前进段:当前节点有子节点
        // 递归返回段:单签节点没有子节点
        // return 1+ Math.max(maxDepth(root.left), maxDepth(root.right));
        // 返回当前节点的左右子树深度大的那个 加上1一个深度,从而得到每个节点的深度
        // 最后回归到根节点的时候得到最深的深度
        
        if(root == null) return 0;
        return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
        
    }
}

 

leetcode.104 计算二叉树的最大深度

标签:计算   The   获取   nbsp   code   tree node   long   ges   note   

原文地址:https://www.cnblogs.com/smallone/p/12117935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!