资讯详情

资讯详情

力扣刷题--104--二叉树的最大深度

题目给定一个二叉树 root 返回其最大深度。二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。示例1输入root [3,9,20,null,null,15,7]输出3示例2输入root [1,null,2]输出2提供代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val val; * this.left left; * this.right right; * } * } */ class Solution { public int maxDepth(TreeNode root) { } }解题思路对于二叉树相关的问题考虑递归方法题目中问的是最大深度可以转换成遍历左子树和右子树两者的最大遍历次数。递归首先考虑终止条件对于二叉树来说当该节点父节点为null时深度为0.所以就可以得到递归的终止条件。深度计算首先考虑结束每次递归的返回值当为null时证明父类是有1个深度的但是终止条件的返回值为0因此需要在返回值取左右节点最大返回值左右子树长度不一样并1保证根节点的深度。完整代码class Solution { public int maxDepth(TreeNode root) { // 递归终止条件 if(root null){ return 0; } // 左子树最大深度 int leftDepth maxDepth(root.left); // 右子树最大深度 int rightDepth maxDepth(root.right); // 当前节点 左右子树深度较大者 return Math.max(leftDepth, rightDepth) 1; } }
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →