leetcode.104 计算二叉树的最大深度
Posted smallone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)); } }
以上是关于leetcode.104 计算二叉树的最大深度的主要内容,如果未能解决你的问题,请参考以下文章