题解 | #牛群排列的最大深度# java

牛群排列的最大深度

https://www.nowcoder.com/practice/b3c6383859a142e9a10ab740d8baed88

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    public int maxDepth (TreeNode root) {
        // write code here
          dfs(root, 1);
        return maxDepth;
    }
    int maxDepth = 0;

    // 深度优先搜索
    void dfs(TreeNode root, int depth) {
        if (root == null) {
            return;
        }
        maxDepth = Math.max(maxDepth, depth);
        dfs(root.left, depth + 1);
        dfs(root.right, depth + 1);
    }

}

该Java代码使用的编程语言是Java。

该题考察的知识点是二叉树的深度优先搜索(DFS)和递归。

代码的解释如下:

  • TreeNode类表示二叉树的节点,包含整数值val和指向左右子节点的引用。
  • Solution类包含一个成员变量maxDepth,用于记录最大深度。
  • dfs方法是一个递归方法,用于进行深度优先搜索。它遍历二叉树,并通过更新maxDepth变量来记录当前遍历到的最大深度。
  • maxDepth方法是计算二叉树的最大深度的方法。它调用dfs方法开始深度优先搜索,并返回最大深度。

通过递归的方式,dfs方法遍历二叉树的每个节点,并在每层递归中更新当前的深度。当遇到空节点时,递归终止。最终,maxDepth变量存储了二叉树的最大深度。

这段代码展示了深度优先搜索的常见用法,用于计算二叉树的最大深度。深度优先搜索是一种重要的图遍历算法,在计算机科学中经常被使用。

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 17:24
点赞 评论 收藏
分享
07-10 13:59
门头沟学院 Java
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务