标签:计算 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)); } }
标签:计算 The 获取 nbsp code tree node long ges note
原文地址:https://www.cnblogs.com/smallone/p/12117935.html