你看到的应该是下面的三个函数,maxheight函数就是求二叉树的左子树与右子树中那个深度最大最大深度多少,minheight函数就是求二叉树的左子树与右子树中那个深度最小最小深度多少,Isbalance函数就是求左子树与右子树的深度差,只要不大于1就是平衡二叉树.
平衡二叉树:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.
static void Main(string[] args)
{
Node root = new Node();
Node c1 = new Node();
Node c2 = new Node();
root.left = c1;
root.right = c2;
Node c11 = new Node();
c1.left = c11;
Node c112 = new Node();
c11.right = c112;
Program p = new Program();
Console.WriteLine(p.isBalanced(root));
Console.Read();
}
public int GetMaxHeight(Node root)
{
if (root == null)
return 0;
int max = 1 + Math.Max(this.GetMaxHeight(root.left), this.GetMaxHeight(root.right));
return max;
}
public int GetMinHeight(Node root)
{
if (root == null)
return 0;
int min = 1 + Math.Min(this.GetMinHeight(root.left), this.GetMinHeight(root.right));
return min;
}
public bool isBalanced(Node root)
{
int max = this.GetMaxHeight(root);
int min = this.GetMinHeight(root);
if (max - min > 1)
return false;
else
return true;
}
}
public class Node
{
public int value;
public Node left;
public Node right;
}