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

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

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));

    }
}

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

时间: 2024-08-29 20:18:46

leetcode.104 计算二叉树的最大深度的相关文章

LeetCode 第104题 二叉树的最大深度

给定一个二叉树,找出其最大深度.二叉树的深度为根节点到最远叶子节点的最长路径上的节点数.说明: 叶子节点是指没有子节点的节点.示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 . 1 class Solution104 { 2 3 private int maxDepth = 0; 4 5 public int maxDepth(TreeNode root) { 6 return root == null ? 0 :

图解精选 TOP 面试题 002 | LeetCode 104. 二叉树的最大深度

该系列题目取自 LeetCode 精选 TOP 面试题列表:https://leetcode-cn.com/problemset/top/ 题目描述 原题链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明:叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20

Leetcode 104. Maximum Depth of Binary Tree(二叉树的最大深度)

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. 分析:求二叉树的最大深度 解法一:很容易想到的便是递归(深度优先搜索) (1)如果根节点是空,则返回0:否则转到(2) (2)  l = 左子树的最大深度; r = 右子树的最大深

LeetCode(104):二叉树的最大深度

Easy! 题目描述: 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 . 解题思路: 求二叉树的最大深度问题用到深度优先搜索DFS,递归的完美应用,跟求二叉树的最小深度问题原理相同. C++解法一: 1 class Solution { 2 public: 3 int maxDepth(Tr

97.二叉树的最大深度

转自[LeetCode] Maximum Depth of Binary Tree 二叉树的最大深度 /** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */ class Soluti

Leetcode:Path Sum 二叉树路径和

Path Sum: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum. For example:Given the below binary tree and sum = 22, 5 / 4 8 / / 11 13 4 / \ 7 2 1 return

(7)计算二叉树的高度和结点数——3

通过使用后序遍历的方式计算二叉树的高度.可以先计算左子树的高度h1,后计算右子树的高度h2,树的高度h3. h3 = max (h1, h2) + 1 ; 二叉树的高度,也就是从根结点出发一直到叶结点的路径的长度. 因为在每种遍历方法中对每个结点都仅访问一次,所以可以在进行遍历时对结点的数目进行计算. --整理自<C/C++程序员面试宝典>

Maximum Depth of Binary Tree 二叉树的最大深度

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. 求二叉树的最大深度问题用到深度优先搜索DFS,递归的完美应用,跟求二叉树的最小深度问题原理相同.代码如下: /** * Definition for binary tree * s

【LeetCode-面试算法经典-Java实现】【104-Maximum Depth of Binary Tree(二叉树的最大深度)】

[104-Maximum Depth of Binary Tree(二叉树的最大深度)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 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. 题目大意 给定