求二叉树的深度 递归 非递归
来源:互联网 发布:windows更新卡住了 编辑:程序博客网 时间:2024/05/29 04:33
public int findDeep1(BiTree root) { if(root == null) { return 0; } else { int lchilddeep = findDeep1(root.left);//求左子树的深度 int rchilddeep = findDeep1(root.left);//求右子树的深度 return lchilddeep > rchilddeep ? lchilddeep + 1 : rchilddeep + 1;//左子树和右子树深度较大的那个加一等于整个树的深度 } }
public int findDeep2(BiTree root) { if(root == null) return 0; BiTree current = null; LinkedList<BiTree> queue = new LinkedList<BiTree>(); queue.offer(root); int cur,last; int level = 0; while(!queue.isEmpty()) { cur = 0;//记录本层已经遍历的节点个数 last = queue.size();//当遍历完当前层以后,队列里元素全是下一层的元素,队列的长度是这一层的节点的个数 while(cur < last)//当还没有遍历到本层最后一个节点时循环 { current = queue.poll();//出队一个元素 cur++; //把当前节点的左右节点入队(如果存在的话) if(current.left != null) { queue.offer(current.left); } if(current.right != null) { queue.offer(current.right); } } level++;//每遍历完一层level+1 } return level; }
阅读全文
0 0
- 非递归求二叉树的深度
- 二叉树递归、非递归求深度
- 求二叉树的深度,递归与非递归算法
- 求二叉树的深度递归与非递归版
- 二叉树的遍历,递归和非递归,求深度
- 求二叉树深度的递归和非递归算法
- 求二叉树的深度 递归 非递归
- 二叉树非递归求深度
- 二叉树的非递归遍历&求深度
- 求二叉树深度的非递归算法
- 求二叉树深度 -- 递归和非递归实现
- 递归与非递归求二叉树深度
- 判断完全二叉树以及求二叉树深度的递归与非递归算法实现
- 二叉树的遍历与求深度的递归与非递归实现
- C++ 实现求二叉树的深度及遍历(递归与非递归算法)
- 递归求二叉树的深度
- 求二叉树的高度(非递归)
- 二叉树的深度(递归+非递归)
- 13.笔记go语言——并发调度器
- HDU2795 Billboard题解
- (转)什么是DevOps?阿里专家为你来解读
- UNIX环境高级编程笔记之高级I/O
- 关于“百度未授权使用地图API”的解决方案
- 求二叉树的深度 递归 非递归
- 进程管理--消息队列
- Google MapReduce
- 第5周实践项目2 链栈的算法库建立
- 面试笔记
- typedef和#define的用法与区别
- Redis的数据类型
- 搜狗笔试
- 网络编程复习(六):Netty入门Demo