首页 > 代码库 > Maximum Depth of Binary Tree,求树的最大深度
Maximum Depth of Binary Tree,求树的最大深度
算法分析:求树的最小最大深度时候,都有两种方法,第一种是递归思想。树最大最小深度,即为它的子树的最大最小深度+1,是动态规划的思想。还有一种方法是层序遍历树,只不过求最小深度时,找到第一个叶子节点就可以返回,该节点的深度,即为树的最小深度。求最大深度时,需要层序遍历完整棵树。
public class MaximumDepthofBinaryTree { public int maxDepth(TreeNode root) { if(root == null) { return 0; } int lmax = maxDepth(root.left); int rmax = maxDepth(root.right); if(lmax == 0 && rmax == 0) { return 1; } if(lmax == 0) { return rmax + 1; } if(rmax == 0) { return lmax + 1; } return Math.max(lmax, rmax) + 1; } public int maxDepth2(TreeNode root) { if(root == null) { return 0; } ArrayList<TreeNode> list = new ArrayList<>(); list.add(root); int count = 1; while(!list.isEmpty()) { ArrayList<TreeNode> temp = new ArrayList<>(); for (TreeNode node : list) { if(node.left != null) { temp.add(node.left); } if(node.right != null) { temp.add(node.right); } } count ++; list = temp; } return count; }}
Maximum Depth of Binary Tree,求树的最大深度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。