树的深度 递归非递归实现

package com.dugstudio.SwordToOffer;import java.util.LinkedList;/*** 树的深度递归和非递归算法*/
class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}
public class TreeDepth {/*** 递归* @param root* @return*/public int TreeDepth1(TreeNode root){if(root==null)return 0;int left=TreeDepth1(root.left);int right=TreeDepth1(root.right);return left>right?left+1:right+1;}/*** 层次遍历非递归* @param root* @return*/public int TreeDepth2(TreeNode root){if(root==null)return 0;int high=0,nextCount=1,count=0;LinkedList<TreeNode>queue=new LinkedList<TreeNode>();queue.add(root);while(queue.size()!=0){count++;TreeNode node=queue.poll();if (node.left!=null)queue.add(node.left);if (node.right!=null)queue.add(node.right);if(count == nextCount){nextCount = queue.size();count = 0;high++;}}return high;}
}
}

树的深度 递归非递归实现相关推荐

  1. 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++

    a b c 使用 1 2 3 表示 /* 描述:二叉树的深度(前序 中序 后序 递归非递归搜素).广度.搜索 作者:jz 日期:20140819 */ #include<stdio.h> ...

  2. 【代码+注释】求二叉树的深度【超详细】递归+非递归实现

    编写算法求出二叉树的深度(层数) 二叉树的深度是指从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度.本文将用两种方式求出二叉树的深度 第一种:无可置疑是递归 核 ...

  3. 快排递归非递归python_Python递归神经网络终极指南

    快排递归非递归python Recurrent neural networks are deep learning models that are typically used to solve ti ...

  4. Java 二叉树后序遍历(递归/非递归)

    Java 二叉树后序遍历(递归/非递归) 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次. 设L.D.R分 ...

  5. 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)

    如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...

  6. 一文彻底搞定二叉树的前序、中序、后序遍历(图解递归非递归)

    前言 大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研.笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历. 这部分很多人可能会但是 ...

  7. Java 二叉树中序遍历(递归/非递归)

    Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...

  8. java 建树源码_Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】...

    import java.util.ArrayDeque; import java.util.Queue; import java.util.Stack; //二叉树的建树,前中后 递归非递归遍历 层序 ...

  9. c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析

    C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...

最新文章

  1. LInux 文件系统 tmpfs 分区不显示解决
  2. printf格式化字符串用法
  3. SAP S/4HANA extensibility扩展原理介绍
  4. qt linux 添加库文件路径,linux下qt使用第三方库的那些事
  5. C++语言类的详解和示例
  6. 【Machine Learning 一】监督学习与无监督学习
  7. yuv422sp to yuv422p
  8. 每个设计师都应该了解的IOS编年史
  9. python中func函数_Python 函数(func)学习
  10. linux刻录光盘空间不足,解决Linux下刻录光盘问题
  11. 重装系统后计算机无法联网,韩博士重装系统后电脑无法上网怎么办?
  12. 反向的css动画,动画方向 | animation-direction
  13. [课业] 25 | 数据库基础 | 基础SQL查询语言
  14. 澳洲留学:说说在澳洲打工的那些苦与痛
  15. 不加班,最高20天全薪年假在微软做程序员究竟有多爽?
  16. linux 命令缓存机制(命令:hash) | hash -r使用场景和作用
  17. MCU DC-DC数控电源
  18. java treeview控件_【TreeView下载】TreeView控件 v1.1.6 官方版-开心电玩
  19. python左移位运算_python移位操作困惑
  20. 网络安全基础 之 防火墙 双机热备、防火墙类型、组网方式、工作模式、逻辑区域划分

热门文章

  1. C语言 —— 你不得不知道的 scanf 的高级用法
  2. Unity 获取手机触摸方法
  3. ios8在通用设置中文键盘无效的解决方法(中文键盘设置)
  4. mysql查询名字中第2个字为丽,数据库技术课程复习5---MySQL语言(2)(单表查询)
  5. 基于人工鱼群算法的路径优化,鱼群算法的原理
  6. 用一朵花开的时间,记录自己的成长
  7. @Transaction
  8. linux磁盘阵列配置,Linux下配置磁盘阵列
  9. QQ个人文件夹保存位置无效
  10. Two Teams Composing