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

104. 二叉树的最大深度

难度:简单

思路:定义两个变量,分别用来保存二叉树的最大深度,和当前遍历的深度。然后定义一个traverse函数,用来对二叉树进行遍历。

/**
 * 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 {

    //定义一个变量用来保存最大深度
    int maxDtph = 0;
    //定义一个用来保存当前遍历到的深度的变量 levelDth
    int levelDth = 0;
    public int maxDepth(TreeNode root) {
        traverse(root);
        return maxDtph;
    }
    //定义一个函数用来遍历二叉树
    void traverse(TreeNode root){
        //边界值判断
        if(root == null){
            return ;
        }
        //深度+1
        levelDth++;
        //如果当前遍历到深度 大于 用来记录二叉树深度 的值。那么就把这个值赋值给maxDtph
        if(levelDth > maxDtph){
            maxDtph = levelDth;
        }
        traverse(root.left);
        traverse(root.right);
        //后序遍历
        levelDth--;
    }
}
提示

用到了遍历递归的思维

posted @ 2022-06-24 16:50  抗争的小青年  阅读(19)  评论(0编辑  收藏  举报