题目链接:
题目描述:
给一个二叉树,判断是不是二叉查找树。
题目分析:
中序遍历树,存储序列,判断该序列是否为递增序列。
代码:
class Solution {
public:
queue<int> q;
void inorderTraversal(TreeNode* root){
if(root!=NULL){
inorderTraversal(root->left);
q.push(root->val);
inorderTraversal(root->right);
}
}
bool isValidBST(TreeNode* root) {
if(root==NULL){
return true;
}
inorderTraversal(root);
int val;
bool flag=true;
while(!q.empty()){
val=q.front();
q.pop();
if(!q.empty() && val>=q.front()){
flag=false;
break;
}
}
return flag;
}
};

本文介绍了一种通过中序遍历来验证给定二叉树是否为二叉搜索树的方法。利用C++实现,首先进行中序遍历并将节点值存入队列,然后检查队列中的元素是否严格递增,以此判断二叉树是否符合二叉搜索树的定义。
482

被折叠的 条评论
为什么被折叠?



