求二叉树的最大深度与最大宽度
来源:互联网 发布:isodata聚类算法 java 编辑:程序博客网 时间:2024/05/21 10:26
1. 最大深度
采用分治算法的思想,将问题分为两个部分,再将每部分继续分成两个部分,一直到基值条件返回。这里即是将左子树和右子树的深度分别求出来比较,用大的那个深度加1即可。所以采用递归的思想。
package JianZhiOffer;
public class TreeDepth
{
public int TreeDepth(TreeNode root)
{
if(root==null)
return 0;
else
{
int left=TreeDepth(root.left );
int right=TreeDepth(root.right );
return 1+Math.max(left,right);
}
}
}
2 . 最大宽度
重点就是要用一个队列,实现节点从对头出队,并可以统计每一层的节点个数,当节点为0时,则退出while循环。
package JianZhiOffer;
import java.util.ArrayDeque;
import java.util.Queue;
public class TreeWidth
{
public int TreeWidth(TreeNode root)
{
if(root==null)
return 0;
Queue<TreeNode> queue=new ArrayDeque<TreeNode>();
queue.add(root);
int max=1;
while(true)
{
int len=queue.size();
if(len==0)
break;
while(len>0)
{
TreeNode node=queue.poll();
len--;
if(node.left!=null)
queue.add(node.left);
if(node.right!=null)
queue.add(node.right);
}
max=Math.max(max,queue.size());
}
return max;
}
}
- 求二叉树的最大深度与最大宽度
- 求二叉树的深度和宽度平衡最大距离
- codevs1501 二叉树的最大宽度与深度
- 二叉树的最大深度和宽度
- 找出二叉树的最大宽度和最大深度
- 二叉树的最大深度和最大宽度
- 求树的最大宽度和最大深度
- 算法 - 求二叉树的最大深度
- 求二叉树的最大深度
- 求二叉树的最大深度
- 二叉树求最大深度
- 求二叉树的宽度(结点的最大距离)
- 二叉树 求最大宽度 java
- 二叉树最大宽度
- java 求二叉树最大深度算法
- leetcode 104求二叉树的最大深度
- [数据结构]求二叉树的深度与宽度
- 二叉树的最大深度
- 机器学习通俗入门-使用梯度下降法求解二分问题
- Device Tree(一):背景介绍
- 2017.6.4 入门组 NO.3——字符串
- maxscript命令
- Elementary体验之安装Elementary OS
- 求二叉树的最大深度与最大宽度
- python ConfigParser库使用和遇到的坑
- Javase知识点的整理(—)
- 基于ubuntu16.04 Hadoop的集群配置
- c++中getline函数的总结
- [Unity3D]UGUI 新手引导遮罩控件
- 表单验证
- 那些年——8 286&586[同步&异步]
- [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)