您的位置:首页 > 其它

判断一棵树是否为搜索二叉树

2019-06-28 15:17 190 查看
#include <iostream>
#include <stack>
using namespace std;

struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int a) :val(a), left(NULL), right(NULL) {};
};
void midOrder(TreeNode * p, stack<TreeNode*>& help)
{
if (p == NULL)return;
midOrder(p->left, help);
help.push(p);
midOrder(p->right, help);
}

bool isSearchTree(TreeNode * p)
{
stack<TreeNode*>help;
midOrder(p, help);
int Min = INT_MAX;
while (!help.empty()) {
p = help.top();
help.pop();
if (Min < p->val)return false;
else {
Min = p->val;
}
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: