C++ 这是一个二进制搜索树吗?黑客问题
我试图解决的问题是,这是一个来自HackerRank的二叉搜索树,使用树:级别顺序遍历。但它显示了编译错误。是因为使用了C++ 这是一个二进制搜索树吗?黑客问题,c++,tree,binary-search-tree,C++,Tree,Binary Search Tree,我试图解决的问题是,这是一个来自HackerRank的二叉搜索树,使用树:级别顺序遍历。但它显示了编译错误。是因为使用了队列?隐藏的存根代码将在此问题中传递一个参数。问题链接:。这是我的密码: bool checkBST(Node* root) { if(root == NULL){ return true; } queue<Node*> Q; Q.push(root); whi
队列
?隐藏的存根代码将在此问题中传递一个参数。问题链接:。这是我的密码:
bool checkBST(Node* root) {
if(root == NULL){
return true;
}
queue<Node*> Q;
Q.push(root);
while(!Q.empty()){
Node *current_node = Q.front();
if(current_node->left != NULL){
if(current_node->left->data >= current_node->data){
return false;
}
Q.push(current_node->left);
}
if(current_node->right != NULL){
if(current_node->right->data <= current_node->data){
return false;
}
Q.push(current_node->right);
}
Q.pop();
}
return true;
}
bool checkBST(节点*根){
if(root==NULL){
返回true;
}
队列Q;
推(根);
而(!Q.empty()){
Node*current_Node=Q.front();
if(当前_节点->左!=NULL){
如果(当前节点->左->数据>=当前节点->数据){
返回false;
}
Q.推送(当前_节点->左);
}
if(当前节点->右侧!=NULL){
如果(当前节点->右->数据){
返回false;
}
Q.push(当前_节点->右侧);
}
Q.pop();
}
返回true;
}
刚刚查看了前面提到的hackerrank挑战,是的,错误是您没有包括#包括,但是您不允许在这个挑战中添加头文件。你必须用递归来回答这个问题
如果您想获得有关如何编写递归的提示,请随时询问 请编辑您的问题以包含编译器错误。