美文网首页剑指offer
39-平衡二叉树

39-平衡二叉树

作者: 马甲要掉了 | 来源:发表于2020-05-26 23:17 被阅读0次

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树

分析

平衡二叉树(AVL树):它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

  1. 遍历每个节点左右深度,看相差超不超过1。
  2. 但是上面的做法会重复遍历很多遍结点,这样很浪费时间效率,正确方法只是遍历一遍,用后序遍历的方法遍历二叉树每个节点,那么在遍历一个结点前就已经遍历了他们的左、右子树,只要在遍历每个节点的时候记录它的深度,那么就可以一边遍历一边判断每个节点是不是平衡的。

代码

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function IsBalanced_Solution(pRoot)
{
   if(pRoot==null) return true;
   
   return Math.abs(getHeight(pRoot.left)-getHeight(pRoot.right))<=1;
    
}
function getHeight(node){
    if(node == null) return 0;
    if(node.left ==null && node.right == null) return 1;
    return Math.max(getHeight(node.left),getHeight(node.right))+1;
}

相关文章

  • 39-平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二...

  • 剑指 offer:39、平衡二叉树

    39. 平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解题思路: 平衡二叉树:Wiki:在...

  • 平衡二叉树

    1)什么是平衡二叉树?2)平衡二叉树的特点是什么?3)平衡二叉树的构建实现? 一、什么是平衡二叉树?假设有一组数据...

  • 面试题:平衡二叉树

    题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 知识点 平衡二叉树 Qiang的思路 平衡二叉树是指一个...

  • Leetcode 110 平衡二叉树

    平衡二叉树 题目 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每...

  • 二叉树2-平衡二叉树、完全二叉树、二叉树剪枝

    110.平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 一棵高度平衡二叉树定义为:一个二叉树每个节点 ...

  • Leetcode题解 - Easy - 4

    110- 平衡二叉树 问题 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一...

  • TreeMap源码分析

    TreeMap 平衡二叉树 平衡二叉树(Self-balancing binary search tree)又被称...

  • 图的应用[平衡二叉树以及散列查找]

    平衡⼆二叉树( AVL 树) 平衡⼆二叉树(Self-Balancing Binary Search Tree 或...

  • [LeetCode]110. 平衡二叉树

    110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个...

网友评论

    本文标题:39-平衡二叉树

    本文链接:https://www.haomeiwen.com/subject/yxobahtx.html