110. 平衡二叉树

Posted 程序猿思维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了110. 平衡二叉树相关的知识,希望对你有一定的参考价值。

110平衡二叉树


给定一个二叉树,判断它是否是高度平衡的二叉树

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1

示例 1:

给定二叉树 [3,9,20,null,null,15,7]

    3
   / 
  9  20
    /  
   15   7

返回 true 。

示例 2:

给定二叉树 [1,2,2,3,3,null,null,4,4]

       1
      / 
     2   2
    / 
   3   3
  / 
 4   4

返回 false 

题目难度:  简单


第一版本:

根据定义

1 遍历 treeo   o(n)

2  然后计算每个节点的深度 o(n)

3  如果当前节点为不满足定义 false 整个tree就是不平衡的二叉树


      time:o(n*2) 


 


正如西部世界 故事线有2个故事性 

世界分为三条线,两实一虚:
1. 当前时间线: 黑帽威廉时间线,凡是有黑帽威廉的都在当前时间
2. 历史时间线:白帽威廉时间线 (35年前),凡是有白帽威廉的都在历史时间,属于回忆
3. 虚拟时间线: 女主脑海中的闪回,脑补画面,与时间没直接关系,可在多个时间线跳跃,也可以是完全脑补的画面。 当女主是穿蓝色的连衣裙、自言自语时属于这条虚拟时间线。

110. 平衡二叉树


平衡二叉树2个故事

  •  一个是遍历tree判断是否平衡的二叉树

  •  一个是遍历tree求深度


第二版本:

golang  通过函数多个参数的返回值 返回从下到上传递的数据

110. 平衡二叉树



测试异常

 /递归判断是否平衡二叉树 root left right 节点都平衡
 bRoot := math.Abs(float64(dLeft)-float64(dRight)) >1   
应该是求判断是否符合条件

110. 平衡二叉树





c++ 通过引用传递 返回从下到上传递的数据

总结:

体会到了 c++ 引用传参 和golang 返回多个参数各种优点




欢迎关注  查看原文链接 更方便阅读

以上是关于110. 平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

⭐算法入门⭐《二叉树 - 平衡二叉树》简单01 —— LeetCode 110. 平衡二叉树

LeetCode #110 平衡二叉树

代码随想录算法训练营第17天 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和

110. 平衡二叉树

leetcode-----110. 平衡二叉树

LeetCode110. 平衡二叉树