目录
题目描述
试编写一个算法,判断给定的二叉树是否是二叉排序树。
来源:王道p277.6
解题思路
二叉排序树特点:对于每个结点,左子树大于根结点值,右子树小于根结点值。
采用中序遍历,验证是否为升序即可。本文采用递归方式,验证当前结点是否是目前已遍历结点中最大值。
宏定义
#define TElemType char
二叉树定义
typedef struct TreeNode{
TElemType val;
struct TreeNode*left;
struct TreeNode*right;
}*Tree,TreeNode;
[注] 上述宏定义和结构体定义是答题时要写的答案,并不是代码实现时的定义,代码实现稍有不同,感兴趣可去“help.h”中查看。