二叉树的深度(java版)
来源:互联网 发布:从淘宝上怎么买彩票 编辑:程序博客网 时间:2024/05/21 06:15
【题目描述】输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
【解题思路1】
//1. 采用递归实现。当前节点的深度,等于左子树深度和右子树深度的最大值+1。
public class Solution { public int TreeDepth(TreeNode root) { if(root == null){ return 0; } int max = getDepth(root); return max; } public int getDepth(TreeNode root){ int max = 0; if(root != null){ max = Math.max(getDepth(root.left), getDepth(root.right))+1; } return max; }}
【解题思路2】
//1.非递归实现,层次遍历。
//2.depth代表高度。count用于计数,nextCount负责记录下层的节点个数。
//3.当count==nextCount时,代表当前层遍历结束。depth++;
import java.util.Queue;import java.util.LinkedList;public class Solution { public int TreeDepth(TreeNode pRoot) { if(pRoot == null){ return 0; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(pRoot); int depth = 0, count = 0, nextCount = 1; while(queue.size()!=0){ TreeNode top = queue.poll(); count++; if(top.left != null){ queue.add(top.left); } if(top.right != null){ queue.add(top.right); } if(count == nextCount){ nextCount = queue.size(); count = 0; depth++; } } return depth; }}
阅读全文
0 0
- 二叉树的深度(java版)
- 二叉树的深度(Java实现)
- 二叉树的深度 Java
- 二叉树的深度 Java
- 二叉树的深度 java
- 求二叉树的深度,判定二叉树是否是平衡二叉树(java)
- 【剑指offer-Java版】39二叉树的深度
- 牛客:剑指offer:二叉树的深度(Java)
- 牛客网编程-二叉树的深度(java)
- java 求二叉树的深度
- Java代码 求二叉树的深度
- 求二叉树的深度 java描述
- java 求二叉树的深度
- Java实现二叉树的深度
- 二叉树的深度java实现
- 二叉树最大深度(Java)
- 剑指Offer面试题39(Java版):二叉树的深度
- 剑指Offer面试题39(Java版):二叉树的深度
- eclipse编码
- 基础类的DSP/BIOS API调用
- iOS传感器:使用陀螺仪完成一个小球撞壁的小游戏
- 文章标题
- 正则表达式菜鸟8终章常用正则表达式
- 二叉树的深度(java版)
- Java8函数式编程Lamda
- maven仓库下载不了?将本地jar包安装进入maven仓库
- 点乘和叉乘的区别
- 从零开始写javaweb框架笔记13-搭建轻量级JAVAWEB框架-开发一个类加载器
- 大数据学习-理论概念篇
- List<LinkedHashMap<String,String>>排序
- Git 文件操作
- 从零开始写javaweb框架笔记14-搭建轻量级JAVAWEB框架-实现Bean容器