二叉树的深度

C++求二叉树深度 开发工具与关键技术: Visual Studio / C++ 作者:何文涛 撰写时间:2019-8-05 二叉树的创建以及简单的运用我上次以及发布过了,现在做的是求二叉树的数深度。 下面就举了了例子来演示求二叉树的算法: //二叉树节点 typedef struct BINARYNODE { char ch; struct BINARYNODE* lchild; struct BINARYNOD... 阅读详情
题目一:
输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

关键词:二叉树的遍历

class Solution
{
public:
    int treeDepth( TreeNode* pRoot )
    {
        if ( pRoot == NULL )
            return 0;
        int left = treeDepth( pRoot->left );
        int right = treeDepth( pRoot->right );

        return ( left > right ) ? ( left+1 ) : ( right+1 );
    }

};
题目二:
输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

关键词:遍历二叉树

class Solution
{
public:
    bool IsBalanced_Solution( TreeNode* pRoot )
    {
        int depth = 0;
        return IsBalanced( pRoot, &depth );
    }

    bool IsBalanced( TreeNode* pRoot, int* pDepth )
    {
        if ( pRoot == NULL )
        {
            *pDepth = 0;
            return true;
        }
        int left, right;
        if ( IsBalanced( pRoot->m_pLeft, &left ) 
                && IsBalanced( pRoot->m_pRight, &right ))
        {
            int diff = left - right;
            if ( diff <= 1 && diff >= -1 )
            {
                *pDepth = 1 + ( left > right ? left : right );
                return true;
            }
        }
        return false;
    }
};

编程计算二叉树的深度 #include "stdio.h" #include "malloc.h" typedef struct BiTNode{     char data;   /*结点的数据域*/     struct BiTNode *lchild , *rchild;  /*指向左孩子和右孩子*/ } BiTNode , *BiTree; /*创建一棵二叉树*/ void CreatBiTree(BiTre... 阅读详情

相关推荐

KUKA-外部自动运行模板程序——个人设计模式&思路

用于说明KUKA与西门子PLC外部自动交互模板的设计思路与使用流程

qq_39024187的博客 5626

二叉树之二叉树的深度

二叉树之二叉树的深度

qq_43218521的博客 6197

Matlab+Matpower实战:手把手教你生成IEEE14节点FDIA攻击数据集(附完整代码)

本文提供了一份基于Matlab与Matpower工具构建IEEE14节点FDIA攻击数据集的完整实战指南。通过动态负荷数据模拟、潮流计算、状态估计及隐蔽攻击向量注入,手把手教你生成可用于电力系统网络安全研究的仿真数据集,并附有核心代码与调试技巧。

bean的博客 399

二叉树的深度和高度

给定一个二叉树, 找出其最大深度。二叉树的深度为根节点到最远叶子节点最长路径上的节点数。如二叉树 [ 3, 9, 20, null, null, 15, 7 ]的最大深度为3:先看一个简单的情况:对于节点 3, 最大深度自然是左右子节点 + 1, 左右子节点都有可能为空, 但只要有一个, 树的最大高度就是 1 + 1 = 2。然后再增加几个节点:而对于节点 3, 则是左右子树深度最大的那个然后 + 1, 具体谁更大, 并不关心。

Mamba_Stan的博客 1万+

全新RGB-D及平面法线数据集DIODE

丰田工业大学联合芝加哥大学和北航发布全新RGB-D及平面法线数据集 DIODE (Dense Indoor and Outdoor DEpth)。

qq_43477338的博客 1540

博途PLC如何建立与笔记本电脑端的连接?(新手必会)

对S7-1500PLC下载硬件组态或程序,需要建立PC与PLC的连接。 由于S7-1500CPU都具有PN端口,因此建立PC与S7-1500PLC的连接通常使用工业以太网来实现。 1.使用网线连接PC-PLC 使用网线,一端连接PC的以太网卡端口,另一端连接S7-1500CPU的PN端口。 2.设置本机IP地址 2.1 确认本机要设置的IP地址段 本机IP地址要和PLC程序组态IP地址段前三位保持一致,后一位使用组态中没有用到的IP地址段。如下图所示。 那么看了这个图片应该就知道了,地址应该设置成192.

weixin_42430971的博客 1万+

计算二叉树深度算法(递归、非递归)入门详解

二叉树在应用时,经常需要知道二叉树的深度。二叉树的深度就是二叉树的层数,即从树根算起,到最底下一层的层数是多少,即二叉树中结点的最大层次值。 本文给出了计算二叉树深度的算法,包括递归算法和非递归算法。......

sunnyoldboy博客 3万+

【FDTD】仿真目录(共计 16 篇)

对于完美吸收型边界条件,有时候我们需要设置将仿真结构穿过边界条件区域,具体原因可以阅读下文。在进行 S 参数扫描时,当考虑到材料的色散特性时,我们可以如下文一样选择计算群延迟。仿真,我们需要构建仿真结构与仿真区域,对于它们的尺寸,应该遵循下文进行设定。中存在多种不同的网格类型,具体可以参考下文,这部分内容仅作了解即可。尺寸的设置问题,对于 mesh 的最小尺寸,可以参考下文。的边界条件设置也十分重要,下文中我们对边界条件进行总结。仿真中我们可以设定参与仿真的模式数量,可以参考下文。尺寸的实例,详见下文。

u011699626的博客 508

二叉树(六):二叉树的最大深度与最小深度

一、二叉树的最大深度 二叉树的最大深度 二叉树的最大深度可以通过递归法,层次遍历和深度优先遍历实现,但是最简单最容易的就是递归法。 1、递归法 1)确定递归三要素 递归函数的返回值和参数:返回值为当前节点的最大深度,参数为当前节点 递归函数的单层逻辑:当前节点的最大深度 = 1 + 左子树或右子树的最大深度 递归函数的终止条件:当前节点为空时,当前节点最大深度为0 2)递归方法代码 class Solution { public: //递归参数及返回值 int maxDepth(Tre

qq_42138662的博客 9093

【雷达成像】基于matlab SAR雷达成像仿真【含Matlab源码 3750期】

SAR雷达成像仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1085

超级全的PCB LAYOUT高速信号走线指南——简化应用版

在PCB Layout中,几乎涵盖了所有的高速信号走线指南。包括了TF/SD、HDMI、LVDS、DVP、eDP、MIPI、USB2.0、USB3.0、MAC、BT.1120、PCIE高速信号等等。此版本为简化版。

bhxc809751502的博客 8550

[剑指Offer]-二叉树的深度

题目描述(一) 输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。例如下图中的二叉树的深度为4,因为它从根结点到叶结点最长的路径包含4个结点(从根结点1开始,经过结点2和结点5,最终到达叶结点7) 解题思路 如果一棵树只有一个结点,它的深度为1。 如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深...

LeoByte的编程驿站 3万+

JavaScript实现量化交易策略(附完整源码)

JavaScript实现量化交易策略(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 721

计算二叉树的深度

[算法步骤] 如果是空树,递归结束,深度为0;否则执行一下操作 递归计算左子树的深度计为m; 递归计算右子树的深度计为n; 如果m大于n,二叉树的深度为m+1,否则为n+1; [算法描述] int Depth(BiTree T) { int m, n; if (T == NULL) return 0; //如果是空树,深度为0,递归结束 else { m = Depth(T->lchild); //递归计算左子树的深度记为m

qq_47142993的博客 5万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

二叉树的深度——C++

概念:二叉树的深度是指树中结点的最大深度(通俗的说 ,从根节点到最底层的叶子结点的行数便是二叉树的深度)。 C++代码: #define _CRT_SECURE_NO_WARNINNGS #include<iostream> using namespace std; //二叉树结点 typedef struct BINARYTREENODE { char root; struct...

ling08140814的博客 2381

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

二叉树的深度_二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。数据结构 TreeNode 的定义:牛客编程题高级数据结构格式说明_牛客博客​blog.nowcoder.net解题思路及代码方法一:分治法分治法的基本思想是:求一个规模为 n 的问题时,我们先求左边规模大约为 n/2 的问题,然后再求右边规模大约为 n/2 的问题,最后...

weixin_39798626的博客 1902

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

二叉树的深度和平衡二叉树的深度

二叉树的深度 虽然前面已经做了二叉树的深度,仍然不牢固。 剑指offer里面用的是递归的方法。只要的思路就是,左子树和右子树的比较,大的一支加1作为深度。并不是此时右子树的深度就不加一,现在考虑的是该节点的深度,而不是左右子树的,左右子树只是helper。该节点可能也是其他结点的左右结点之一。 借鉴的一个大神的图,很清晰: 也是相当于后序遍历。 def maxdepth(root): if not root: return 0 depthleft = maxdepth(root.left) de

RUN 1812

二叉树 | 二叉树的深度

文章目录问题:二叉树的最大深度解题思路C++代码 问题:二叉树的最大深度 问题链接 解题思路 采用递归的思路,如果root为NULL,返回0,否则返回1+max{左子树深度,右子树深度} C++代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *lef...

逐梦者 861

二叉树的深度的深度计算与完全二叉树、满二叉树概念

二叉树的深度计算 1、一颗树只有一个节点,它的深度是1; 2、二叉树的根节点只有左子树而没有右子树,那么可以判断,二叉树的深度应该是其左子树的深度加1; 3、二叉树的根节点只有右子树而没有左子树,那么可以判断,那么二叉树的深度应该是其右树的深度加1; 4、二叉树的根节点既有右子树又有左子树,那么可以判断,那么二叉树的深度应该是其左右子树的深度较大值加1。 int TreeDeep(struct n...

zqc的博客 5560

求二叉树深度以及寻找二叉树中某一节点值

size_t BTreeDepth(BTNode* root) BTNode* BTreeFind(BTNode* root, BTDataType x) 求二叉树的深度依然用的是二叉树递归的特性。二叉树的深度就是你根节点的这一层加上他左孩子或者右孩子中深度大的哪一个,同样这也能被划分为子问题。 size_t BTreeDepth(BTNode* root) { if (root == NULL) return 0; if (BTreeDepth(root-&gt;_left) &gt;

Hanani_Jia的博客 5022

二叉树深度计算

问题描述 https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/点击打开链接 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the r

ych_ding的专栏 2万+
上一篇: 数字在排序数组中出现的次数
下一篇: 数组中出现一次的数字
Findway_
博客等级 码龄10年 36粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值