剑指offer 55 二叉树的深度

简介: DFS深度优先二叉树无非就那几个步骤

题目

image.png

思路

DFS深度优先二叉树无非就那几个步骤


创建结果变量,初始化结果


设计递归函数


到达结尾,返回


未到达结尾,更新当前结果


到达叶子节点,更新最优结果


递归左右节点


开始递归调用函数


代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    //初始化结果
    int max=0; //最终结果
    int len=0; //当前深度
    public int maxDepth(TreeNode root) {
        dfs(root,len);
        return max;
    }
    //构造递归函数
    void dfs(TreeNode node, int deep){
        //终止条件
        if(node ==null){
            return;
        }
        //更新当前结果到deep
        deep++;
        //到达叶子节点,进行最优解更新
        if(node.left == null && node.right == null){
            //更新最优解
            max= Math.max(max,deep);
        }
        //递归左右孩子
        dfs(node.left, deep);
        dfs(node.right, deep);
    }
}
相关文章
|
6月前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
【剑指offer】-二叉树的深度-36/67
【剑指offer】-二叉树的深度-36/67
|
算法
代码随想录算法训练营第十五天 | LeetCode 104. 二叉树的最大深度、559. N 叉树的最大深度、111.二叉树的最小深度、222. 完全二叉树的节点个数
代码随想录算法训练营第十五天 | LeetCode 104. 二叉树的最大深度、559. N 叉树的最大深度、111.二叉树的最小深度、222. 完全二叉树的节点个数
54 0
【Leetcode -100.相同的树 -104.二叉树的深度】
【Leetcode -100.相同的树 -104.二叉树的深度】
38 0
剑指offer 59. 二叉树的深度
剑指offer 59. 二叉树的深度
55 0
剑指offer_二叉树---二叉树的深度
剑指offer_二叉树---二叉树的深度
67 0
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数(上)
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数(下)
代码随想录刷题|LeetCode 104.二叉树的最大深度 559.n叉树的最大深度 111.二叉树的最小深度 222.完全二叉树的节点个数
|
存储 算法 关系型数据库
重温算法之二叉树的锯齿形层序遍历
关于二叉树的题目其实是我的弱项,虽然二叉树不是很难理解,但是从学校开始接触二叉树开始就对它不是很感冒,所以很多时候都避开它,但是再难咬的骨头也的得啃,二叉树运用在很多程序的底层实现里,比如MySQL的索引实现就是B+树,我们懂得使用索引的同时也得知道,索引为什么这么快,而其快的原因就是底层里B+树得实现。
107 0
重温算法之二叉树的锯齿形层序遍历