平衡二叉树

Posted Hi,程序員

tags:

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

特性:
它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,同时,平衡二叉树必定是二叉搜索树,反之则不一定。

class TreeNode { int val; TreeNode left; TreeNode right;   TreeNode(int x) { val = x; } }   public class Solution { public boolean isBalanced(TreeNode root) { if (root == null) return true;   if (getHeight(root) == -1) return false;   return true; }   public int getHeight(TreeNode root) { if (root == null) return 0;   int left = getHeight(root.left); int right = getHeight(root.right);   if (left == -1 || right == -1) return -1;   if (Math.abs(left - right) > 1) { return -1; }   return Math.max(left, right) + 1;   } }

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

什么是平衡二叉树

[数据结构4.8]平衡二叉树

平衡二叉树的介绍

树总结(二)平衡二叉树

平衡二叉树的操作(高手进)

平衡二叉树的问题!