酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

在神秘的深渊森林中,隐藏着一棵巨大的深渊之树。这棵树的每个节点代表着不同的传说与力量。传闻中,只有真正的探险家才能走到这棵树的最深处,找到埋藏已久的宝藏。作为森林中最勇敢的探险者,你的任务是找到从树的根部到最深处的那条神秘之路,并计算它的深度,以揭示树的最终秘密。 输入要求: 输入为一行节点值,每个节点为一个整数或null。其中,null表示空节点。按先序遍历的顺序给出节点值。 输出要求: 输出一个整数,表示二叉树的最大深度,即从根节点到最远叶子节点的最长路径上的节点数。 求java代码

```java import java.util.Scanner; class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; this.left = null; this.right = null; } } public class BinaryTreeDepth { public static int maxDepth(TreeNode root) { if (root == null) { return 0; } int leftDepth = maxDepth(root.left); int rightDepth = maxDepth(root.right); return Math.max(leftDepth, rightDepth) + 1; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); String[] values = input.split(" "); TreeNode root = buildTree(values, 0); int depth = maxDepth(root); System.out.println(depth); } public static TreeNode buildTree(String[] values, int index) { if (index >= values.length || values[index].equals("null")) { return null; } TreeNode root = new TreeNode(Integer.parseInt(values[index])); root.left = buildTree(values, 2 * index + 1); root.right = buildTree(values, 2 * index + 2); return root; } } ``` [2024-11-17 15:23:13 | AI写代码神器 | 309点数解答]

相关提问