抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

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


思路

  • 思路 1
    • 直接递归判断左子树和右子树是否是平衡二叉树,然后再判断以当前节点为根节点的树是否平衡
    • 问题在于时间复杂度高,存在子树的高度多次计算的情况
  • 思路 2
    • 将判断的逻辑加入到 calHight() 函数中,当计算得到非平衡时,设置特殊返回值,从而进行剪枝。

学习点

  • 当其中一个子树为非平衡时,设置特殊返回值,进行剪枝从而减少计算开销。

代码

思路 1:

思路 2:




本站采用 Volantis 主题设计