0
点赞
收藏
分享

微信扫一扫

判断一颗二叉树是否是二叉搜索树(C++)

木匠0819 2022-04-03 阅读 61
算法c++
#include <iostream>
#include <climits>
using namespace std;
class Node{
public:
    int data;
    Node* left;
    Node* right;
    Node(int val){
        data = val;
        left=right = NULL;
    }
};
int preValue = INT_MIN;
bool checkBST(class Node* head){
    if(head == NULL){
        return true;
    }
    bool leftIsBst = checkBST(head->left);
    if(!leftIsBst){
        return false;
    }
    if(head->data <= preValue){
        return false;
    }
    else{
        preValue = head->data;
    }
    return checkBST(head->right);
    
}
int main()
{
    class Node* root = new Node(6);
    root->left = new Node(3);
    root->right = new Node(8);
    root->left->left = new Node(1);
    root->left->right = new Node(4);
    root->right->left = new Node(7);
    root->right->right = new Node(9);
    cout<<checkBST(root)<<endl;
    
}

 

举报

相关推荐

0 条评论