树的深度 递归非递归实现
树的深度 递归非递归实现
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;}
}
}
树的深度 递归非递归实现相关推荐
- 二叉树的深度(前序 中序 后序 递归非递归搜素)、广度、搜索 C++
a b c 使用 1 2 3 表示 /* 描述:二叉树的深度(前序 中序 后序 递归非递归搜素).广度.搜索 作者:jz 日期:20140819 */ #include<stdio.h> ...
- 【代码+注释】求二叉树的深度【超详细】递归+非递归实现
编写算法求出二叉树的深度(层数) 二叉树的深度是指从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度.本文将用两种方式求出二叉树的深度 第一种:无可置疑是递归 核 ...
- 快排递归非递归python_Python递归神经网络终极指南
快排递归非递归python Recurrent neural networks are deep learning models that are typically used to solve ti ...
- Java 二叉树后序遍历(递归/非递归)
Java 二叉树后序遍历(递归/非递归) 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访问一次,而且只被访问一次. 设L.D.R分 ...
- 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)
如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...
- 一文彻底搞定二叉树的前序、中序、后序遍历(图解递归非递归)
前言 大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研.笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历. 这部分很多人可能会但是 ...
- Java 二叉树中序遍历(递归/非递归)
Java 二叉树中序遍历(递归/非递归) 中序遍历 代码实现 递归方式 非递归方式 简介: 遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有结点,使每一个结点都被访 ...
- java 建树源码_Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】...
import java.util.ArrayDeque; import java.util.Queue; import java.util.Stack; //二叉树的建树,前中后 递归非递归遍历 层序 ...
- c语言折半查找递归程序,C语言数据结构中二分查找递归非递归实现并分析
C语言数据结构中二分查找递归非递归实现并分析 前言: 二分查找在有序数列的查找过程中算法复杂度低,并且效率很高.因此较为受我们追捧.其实二分查找算法,是一个很经典的算法.但是呢,又容易写错.因为总是考 ...
最新文章
- LInux 文件系统 tmpfs 分区不显示解决
- printf格式化字符串用法
- SAP S/4HANA extensibility扩展原理介绍
- qt linux 添加库文件路径,linux下qt使用第三方库的那些事
- C++语言类的详解和示例
- 【Machine Learning 一】监督学习与无监督学习
- yuv422sp to yuv422p
- 每个设计师都应该了解的IOS编年史
- python中func函数_Python 函数(func)学习
- linux刻录光盘空间不足,解决Linux下刻录光盘问题
- 重装系统后计算机无法联网,韩博士重装系统后电脑无法上网怎么办?
- 反向的css动画,动画方向 | animation-direction
- [课业] 25 | 数据库基础 | 基础SQL查询语言
- 澳洲留学:说说在澳洲打工的那些苦与痛
- 不加班,最高20天全薪年假在微软做程序员究竟有多爽?
- linux 命令缓存机制(命令:hash) | hash -r使用场景和作用
- MCU DC-DC数控电源
- java treeview控件_【TreeView下载】TreeView控件 v1.1.6 官方版-开心电玩
- python左移位运算_python移位操作困惑
- 网络安全基础 之 防火墙 双机热备、防火墙类型、组网方式、工作模式、逻辑区域划分