Maximum Depth of Binary Tree,求树的最大深度

Posted 32ddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,求树的最大深度的主要内容,如果未能解决你的问题,请参考以下文章

104. Maximum Depth of Binary Tree

[Lintcode]97. Maximum Depth of Binary Tree/[Leetcode]104. Maximum Depth of Binary Tree

Maximum Depth of Binary Tree

104. Maximum Depth of Binary Tree

[Leetcode] Maximum Depth of Binary Tree

LC.104. Maximum Depth of Binary Tree