当前位置: 首页> 文旅> 美景 > 金华自助建站_中国万网张向东_淘宝数据分析_百度ai营销中国行

金华自助建站_中国万网张向东_淘宝数据分析_百度ai营销中国行

时间:2025/7/12 2:10:02来源:https://blog.csdn.net/dknna/article/details/144329282 浏览次数:0次
金华自助建站_中国万网张向东_淘宝数据分析_百度ai营销中国行

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2

解题思路:

首先构建二叉树:接收用户输入的节点值字符串,按空格分割成数组,若为空或首个是 “null” 则返回空树。否则用首个值创建根节点入队列,从第二个值开始循环,每次取队列节点,按顺序依值构建左右子树节点(非 “null” 时创建并加入队列),最后返回根节点完成树构建。然后再使用两个方法:isSymmetric 方法:先看根节点,为空则树对称返回 true,不为空就调 isMirror 方法判断左右子树是否镜像对称。isMirror 方法:有两个终止条件,左右子树都为空返回 true,有且仅有一个为空返回 false;正常情况需当前节点值相等且左子树左与右子树右、左子树右与右子树左分别对称(递归判断),都满足才返回 true,以此判断整树是否轴对称。

具体代码:

import java.util.Scanner;// 定义二叉树节点类
class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int val) {this.val = val;}
}class Solution {// 计算二叉树最大深度的方法public int maxDepth(TreeNode root) {if (root == null) {return 0;}// 递归计算左子树深度int leftDepth = maxDepth(root.left);// 递归计算右子树深度int rightDepth = maxDepth(root.right);// 整棵树的深度 = 左右子树深度较大值 + 1(根节点这一层)return Math.max(leftDepth, rightDepth) + 1;}
}public class shenDu {public static TreeNode buildTree() {Scanner scanner = new Scanner(System.in);System.out.println("请按层序遍历顺序输入二叉树节点值(使用null表示空节点),节点值之间用空格隔开,输入完成后按回车键:");String input = scanner.nextLine().trim();String[] values = input.split(" ");if (values.length == 0 || values[0].equals("null")) {return null;}TreeNode root = new TreeNode(Integer.parseInt(values[0]));int index = 1;while (index < values.length) {TreeNode node = findNode(root, values, index);index += 2;}return root;}private static TreeNode findNode(TreeNode parent, String[] values, int index) {if (index >= values.length || values[index].equals("null")) {return null;}TreeNode node = new TreeNode(Integer.parseInt(values[index]));parent.left = node;if (index + 1 < values.length &&!values[index + 1].equals("null")) {TreeNode rightNode = new TreeNode(Integer.parseInt(values[index + 1]));node.right = rightNode;}return node;}public static void main(String[] args) {TreeNode root = buildTree();Solution solution = new Solution();System.out.println("该二叉树的最大深度为: " + solution.maxDepth(root));}
}

运行截图:

关键字:金华自助建站_中国万网张向东_淘宝数据分析_百度ai营销中国行

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: