博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]: 104: Maximum Depth of Binary Tree
阅读量:6214 次
发布时间:2019-06-21

本文共 2891 字,大约阅读时间需要 9 分钟。

DFS:

public static int maxDepth_DFS(Node root) {            	if(root == null){              return 0;          }    	else{            int intLeftTreeDepth = maxDepth_DFS(root.left);              int intRightTreeDepth = maxDepth_DFS(root.right);                          return intLeftTreeDepth > intRightTreeDepth? intLeftTreeDepth + 1:intRightTreeDepth+ 1;      	}    }

BFS:

public static int maxDepth_BFS(Node root) {                if(root == null){              return 0;          }                Queue_Generic
que = new Queue_Generic
(1000); int nCount = 1; int nDepth = 0;// 记录队列里面每一层上的元素 que.Insert(root); while(!que.isEmpty()) { Node NodeTemp = que.PeekFront(); que.Remove(); nCount --; //if(!NodeTemp.left.equals(null)){
if(! (NodeTemp.left == null)){ que.Insert(NodeTemp.left); } //if (!NodeTemp.right.equals(null)){
if (!(NodeTemp.right==null)){ que.Insert(NodeTemp.right); } if (nCount == 0) { //System.out.println("Node Count : "+nCount); nDepth ++; nCount = que.Size(); //System.out.println("Node Count : "+nCount); } } return nDepth; }

 

其它知识

泛型队列:

public class Queue_Generic 
{ int MaxSize; T[] DataStorage; int iHeadPos; int iEndPos; int iItenCount; public Queue_Generic(int intMax){ MaxSize = intMax; iHeadPos = 0; iEndPos = -1; iItenCount = 0; DataStorage = (T[]) new Object[intMax]; } public void Insert(T value){ if(MaxSize > iItenCount){ if(iEndPos == MaxSize-1){ iEndPos = -1; } DataStorage[++iEndPos] = value; iItenCount++; } } public T Remove(){ T Temp; if(iItenCount > 0){ iItenCount--; Temp = DataStorage[iHeadPos++]; if(iHeadPos == MaxSize){ iHeadPos = 0; } } else{ return null; } return Temp; } public T Peek(){ return (T)DataStorage[iEndPos]; } public T PeekFront(){ return (T)DataStorage[iHeadPos]; } public boolean isEmpty(){ if(iItenCount == 0){ return true; }else{ return false; } } public boolean isFull(){ if(iItenCount == MaxSize){ return true; }else{ return false; } } public int Size(){ return iItenCount; }}

其中,关键的点

1. 存储结构需要将Object强制转换成泛型类型:DataStorage = (T[]) new Object[intMax];

2. 返回的结果为泛型类型: return (T)DataStorage[iEndPos];

转载于:https://www.cnblogs.com/savageclc26/p/4773180.html

你可能感兴趣的文章
听同事说的一个论坛
查看>>
java常用类库
查看>>
代理模式
查看>>
我的友情链接
查看>>
Gary Cuba: 如何忘掉一个你爱的人(个人翻译)
查看>>
win 7安装maven
查看>>
Linux中find常见用法示例
查看>>
4.4.5 Main方法
查看>>
4.5 方法参数
查看>>
spark整合hive+hbase做数据实时插入及实时查询分析
查看>>
java采用jdbc连接操作数据库
查看>>
ASP.NET MVC 应用提速的十种方法
查看>>
1.3节 逻辑门与二进制数 part2
查看>>
不重装系统修复系统的一些实例
查看>>
异步GEI (2) 线程
查看>>
通过管理控制台和命令行两种方式新建邮箱数据库(exchange2010)
查看>>
网卡设置(设置IP地址、网关、DNS)
查看>>
linux之sed用法
查看>>
HBTC2012 参会感受
查看>>
如何愉快的使用MQ-详述各种功能场景
查看>>