前言
今天的这道题《二叉树的最大深度》,难度等级依然是简单等级,主要考点就是对二叉树的数据结构的相关理解。
在这之前,我们已经做了关于二叉树数据结构相关的题型,对二叉树数据结构有了基础的认识,再来做这道题的时候,自然就更容易了。
如果你是第一次看二叉树的数据结构,那么也可以通过这道题来认识一下二叉树的一些特性,还有通常处理二叉树的方式。
算法题:二叉树的最大深度
从题目的描述来看,这道题的最终目的是想要得到二叉树一共有多少层,要最下面的那一层的层数。
从给出的示例中来看,提供的二叉树是有可能在一些分叉数据上终止,所以要处理这种中途断掉的情况。
从上一道题中,我们使用了递归的方式来处理二叉树中的值,那么针对这次的题目,我们依然可以利用递归的方式去处理,最后得到正确的结果。
代码展示
下面就是我的代码逻辑了,采用的递归概念解决的。
/** * 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) { if (root == null) { return 0; } else { int l = maxDepth(root.left); int r = maxDepth(root.right); return Math.max(l, r) + 1; } } }
执行结果:
递归效率可以,推荐大家使用这种方法来解题。
总结
其实连着做了两道关于二叉树的题目,就发现规律了,要想处理二叉树中的元素,还是要通过递归的方式来处理,这样更方便一些。