美文网首页
平衡二叉树

平衡二叉树

作者: ElricTang | 来源:发表于2019-11-14 10:49 被阅读0次

《剑指offer》刷题笔记。如有更好解法,欢迎留言。

关键字: 树的深度 平衡二叉树

题目描述:

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

思路:

  • 平衡二叉树的特点是左右子树的深度相差不超过1(空树是平衡二叉树)。
  • 所以先算出树的深度,判断以当前结点为根的树是否为平衡二叉树,递归判断左右子树是否为平衡二叉树。
  • 完整代码
function depth(root){
    let lh,rl,h;
    if(root === null)return 0;
    lh = depth(root.left);
    rh = depth(root.right);
    if(lh >= rh){
        h = lh+1;
    }
    else{
        h = rh+1;
    }
    return h;
}
function IsBalanced_Solution(pRoot)
{
    if(pRoot === null)return true;
    let gap = depth(pRoot.left) - depth(pRoot.right);
    if(gap > 1 || gap < -1){
        return false;
    }
    return IsBalanced_Solution(pRoot.left) && IsBalanced_Solution(pRoot.right);
}

相关文章

  • 剑指 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. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个...

  • 力扣算法 - 平衡二叉树

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

网友评论

      本文标题:平衡二叉树

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