判断一棵二叉树是否为搜索二叉树和完全二叉树
Last updated
Last updated
问题简述
思路
判断二叉搜索树的条件:
当前节点的值大于左树的最大值,小于右树的最小值,且左右子树都是二叉搜索树;
判断完全二叉树的条件:
左右子树都是满二叉树,且高度相同(满二叉树);
左右子树都是满二叉树,且左子树的高度+1;
左子树是满二叉树,右子树是完全二叉树,且高度相同;
左子树是完全二叉树,右子树是满二叉树,且左子树的高度+1;
综上:
我们需要存储信息有:最大值、最小值、高度、是否二叉搜索树、是否满二叉树、是否完全二叉树;
对空节点,初始化为:无穷小、无穷大、0、是、是、是;
详见代码;