文档章节

【40】二叉树的高度

fengsehng
 fengsehng
发布于 2016/11/09 09:15
字数 192
阅读 0
收藏 0

题目:

实现二叉树的数据结构定义(二叉树存储的为int值)
实现一个算法来计算二叉树t的高度

思路:

  • 首先定义一个二叉树的类
  • 动态规划的思路,height(n) = max(height(n.left),height(n.right))+1;

代码:

二叉树的定义类

class BinaryTreeNode{
        int mValue;
        BinaryTreeNode mLeft;;
        BinaryTreeNode mRight;
    }

解法:

int treeDeep(BinaryTreeNode head){
        if(head == null)return 0;
        int left = treeDeep(head.mLeft);
        int right = treeDeep(head.mRight);

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

欢迎入群:

公众号IT面试题汇总讨论群

这里写图片描述

如果扫描不进去,加我微信(rdst6029930)拉你。

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

这里写图片描述

© 著作权归作者所有

共有 人打赏支持
fengsehng
粉丝 4
博文 284
码字总数 214494
作品 0
朝阳
程序员
私信 提问
计算二叉树的最大高度

二叉树的高度有两种定义: 1) 从根节点到最深节点的最长路径的节点数。 2) 从根到最深节点的最长路径的边数。 在这篇文章中,我们采用第一种定义。例如,下面这棵树的高度是3: 计算二叉树高...

九州暮云
2018/01/11
0
0
[概念辨析 系列 之二] 二叉树:complete和full

二叉树(binary tree)是一种数据结构,它有唯一的根节点,并且每个节点都有0个,1个或者2个子节点。它的(至多)两个子节点被区分为左子节点和右子节点。 为了更准确地讨论二叉树的性质,我们在...

黄宇
2016/09/27
0
0
二叉树的一些算法

求二叉树中距离最远的2个节点的距离 本文中二叉树结构定义为: 定义:空二叉树的高度为-1,只有根节点的二叉树高度为0,根节点在0层,深度为0。 两个节点的距离为两个节点间最短路径的长度。...

泳泳啊泳泳
2017/12/25
0
0
二叉树平衡检查

1、题目内容 二叉树平衡检查 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。 给定指向树根结点的指针TreeNode* root,请返回一个...

笨拙的小Q
2016/04/20
26
0
二叉树的基本概念

二叉树的定义 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。 二叉树的5种基本形态,任意一棵二叉树都由这...

大胖和二胖
2016/11/29
15
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
28分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
今天
4
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
今天
2
0
你真的需要了解一下CSS变量 var()的用法

当Web项目变得越来越大时,他的CSS会变得像天文数字那么大而且还变得混乱。为了帮助我们解决这个问题,新的CSS变量很快就会出现在主流浏览器中,它让开发人员能够重用并轻松编辑重复出现的C...

前端小攻略
今天
1
0
嵌入式应用选择合适的微控制器

为嵌入式应用选择微控制器有几个原因,即低成本,高集成度,增加可靠性,节省空间等。 准备所需硬件接口列表使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微...

linux-tao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部