求二叉树的最大深度和最小深度以及之间的差

来源:互联网 发布:外文期刊数据库 编辑:程序博客网 时间:2024/05/21 10:59
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;    } 

原创粉丝点击