由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 判断 bst 疑问
相关主题
这个check whether a binary tree is a BST or not求教一道老题
讨论个Binary search tree的题目这个Binary Tree的题来看看
这个check whether a binary tree is a BST 问题发几道Google面试题(Phone and Onsite)
Lowest common ancestor of two nodes of Binary Treerecover binary search tree 常数空间
Find the node with given value in binary tree in in-orderbinary tree, sum of 2 nodes == given number
刚才的amazon phone interview 第一轮请教LEETCODE讲解部分的LCA一道题的变种。。
判断BT是否BST?请教find number of duplicates in a binary search tree
"Hacking a G Interview"怎么有这样低级错?F电面
相关话题的讨论汇总
话题: node话题: right话题: tree话题: false话题: root
进入JobHunting版参与讨论
1 (共1页)
i**9
发帖数: 351
1
很多人给出的答案
int isBST(struct node* node) {
if (node==NULL) return(true);
// false if the max of the left is > than us
// (bug -- an earlier version had min/max backwards here)
if (node->left!=NULL && maxValue(node->left) > node->data)
return(false);
// false if the min of the right is <= than us
if (node->right!=NULL && minValue(node->right) <= node->data)
return(false);
// false if, recursively, the left or right is not a BST
if (!isBST(node->left) || !isBST(node->right))
return(false);
// passing all that, it's a BST
return(true);
}
我怎么觉得在第三次判断的时候应该是(只有小于号,没有等于号)
// false if the min of the right is < than us
if (node->right!=NULL && minValue(node->right) < node->data)
return(false);
右子树值等于root值也有应该是valid binary search tree, 大家讨论讨论?
l*****a
发帖数: 14598
2
Binary search tree
From Wikipedia, the free encyclopedia
In computer science, a binary search tree (BST) or ordered binary tree
is a node-based binary tree data structure which has the following
properties:
The left subtree of a node contains only nodes with keys less than the
node's key.
The right subtree of a node contains only nodes with keys greater than
the node's key.
Both the left and right subtrees must also be binary search trees.

【在 i**9 的大作中提到】
: 很多人给出的答案
: int isBST(struct node* node) {
: if (node==NULL) return(true);
: // false if the max of the left is > than us
: // (bug -- an earlier version had min/max backwards here)
: if (node->left!=NULL && maxValue(node->left) > node->data)
: return(false);
: // false if the min of the right is <= than us
: if (node->right!=NULL && minValue(node->right) <= node->data)
: return(false);

z****n
发帖数: 1379
3
很多人给出的答案不是这个吧
这个复杂度太高了,很多重复计算
正解是传当前最小最大值给递归函数
至于小于还是小于等于号,不是那么重要,可以临时跟面试官商讨定义

【在 i**9 的大作中提到】
: 很多人给出的答案
: int isBST(struct node* node) {
: if (node==NULL) return(true);
: // false if the max of the left is > than us
: // (bug -- an earlier version had min/max backwards here)
: if (node->left!=NULL && maxValue(node->left) > node->data)
: return(false);
: // false if the min of the right is <= than us
: if (node->right!=NULL && minValue(node->right) <= node->data)
: return(false);

d**e
发帖数: 6098
4
最简单的应该是inorder,如果递增就是bst

【在 z****n 的大作中提到】
: 很多人给出的答案不是这个吧
: 这个复杂度太高了,很多重复计算
: 正解是传当前最小最大值给递归函数
: 至于小于还是小于等于号,不是那么重要,可以临时跟面试官商讨定义

z****n
发帖数: 1379
5
复杂度一样的吧,还多申请了一个变量储存上一个值:)

【在 d**e 的大作中提到】
: 最简单的应该是inorder,如果递增就是bst
p********7
发帖数: 549
6
如果是等于就不是BST了

【在 z****n 的大作中提到】
: 很多人给出的答案不是这个吧
: 这个复杂度太高了,很多重复计算
: 正解是传当前最小最大值给递归函数
: 至于小于还是小于等于号,不是那么重要,可以临时跟面试官商讨定义

c***2
发帖数: 838
7
Here's my version:
boolean is_binary_search_tree (tree_node_type *root)
{
if ((!root)||(!root->left && !root->right))
return TRUE;

if(root->left){
if(root->right) {
if(TREE_GT>tree_compare(root->left,root,NULL)&&
TREE_GT>tree_compare(root,root->right,NULL))
return is_binary_search_tree(root->left)&&is_binary_search_
tree(root->right);
else
return FALSE;
}
else
return is_binary_search_tree(root->left);
}
else
return is_binary_search_tree(root->right);
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
F电面Find the node with given value in binary tree in in-order
F家phone interview的一道题刚才的amazon phone interview 第一轮
弱问怎么判断两个binary tree相同?判断BT是否BST?
Leetcode bst max path-----is this solution correct?"Hacking a G Interview"怎么有这样低级错?
这个check whether a binary tree is a BST or not求教一道老题
讨论个Binary search tree的题目这个Binary Tree的题来看看
这个check whether a binary tree is a BST 问题发几道Google面试题(Phone and Onsite)
Lowest common ancestor of two nodes of Binary Treerecover binary search tree 常数空间
相关话题的讨论汇总
话题: node话题: right话题: tree话题: false话题: root