刷题专栏(六):二叉树的最大深度

简介: 刷题专栏(六):二叉树的最大深度

前言

今天的这道题《二叉树的最大深度》,难度等级依然是简单等级,主要考点就是对二叉树的数据结构的相关理解。

在这之前,我们已经做了关于二叉树数据结构相关的题型,对二叉树数据结构有了基础的认识,再来做这道题的时候,自然就更容易了。

如果你是第一次看二叉树的数据结构,那么也可以通过这道题来认识一下二叉树的一些特性,还有通常处理二叉树的方式。

image.png

算法题:二叉树的最大深度

从题目的描述来看,这道题的最终目的是想要得到二叉树一共有多少层,要最下面的那一层的层数。

从给出的示例中来看,提供的二叉树是有可能在一些分叉数据上终止,所以要处理这种中途断掉的情况。

从上一道题中,我们使用了递归的方式来处理二叉树中的值,那么针对这次的题目,我们依然可以利用递归的方式去处理,最后得到正确的结果。

代码展示

下面就是我的代码逻辑了,采用的递归概念解决的。

/**
 * 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;
        }
    }
}

执行结果:

递归效率可以,推荐大家使用这种方法来解题。

image.png

总结

其实连着做了两道关于二叉树的题目,就发现规律了,要想处理二叉树中的元素,还是要通过递归的方式来处理,这样更方便一些。

目录
相关文章
|
6月前
|
算法 索引
leetcode654最大二叉树刷题打卡
leetcode654最大二叉树刷题打卡
54 0
|
6月前
leetcode104二叉树的最大深度刷题打卡
leetcode104二叉树的最大深度刷题打卡
39 0
|
6月前
|
算法
刷题专栏(十):二叉树的前序遍历
刷题专栏(十):二叉树的前序遍历
55 0
|
6月前
|
算法
刷题专栏(八):平衡二叉树
刷题专栏(八):平衡二叉树
52 0
|
6月前
|
存储 算法
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
57 0
|
6月前
|
算法
六六力扣刷题二叉树之层序遍历
六六力扣刷题二叉树之层序遍历
58 0
|
6月前
|
算法
六六力扣刷题二叉树之递归遍历
六六力扣刷题二叉树之递归遍历
58 0
|
Cloud Native
【刷题日记】590. N 叉树的后序遍历
本次刷题日记的第 5 篇,力扣题为:【刷题日记】590. N 叉树的后序遍历 ,简单
|
算法 Cloud Native
【刷题日记】429. N 叉树的层序遍历
本次刷题日记的第 27 篇,力扣题为:429. N 叉树的层序遍历 ,中等
|
Cloud Native
【刷题日记】589. N 叉树的前序遍历
本次刷题日记的第 4 篇,力扣题为:589. N 叉树的前序遍历 ,简单