首页 > 试题广场 >

判断是不是二叉搜索树

[编程题]判断是不是二叉搜索树
  • 热度指数:81702 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。

二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。

例:
图1

图2

数据范围:节点数量满足 ,节点上的值满足
示例1

输入

{1,2,3}

输出

false

说明

如题面图1 
示例2

输入

{2,1,3}

输出

true

说明

如题面图2 

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 牛客题解官
发表于 2022-04-22 12:02:33
精华题解 题目主要信息: 判断给定的一棵二叉树是否是二叉搜索树 二叉搜索树每个左子树元素小于根节点,每个右子树元素大于根节点,中序遍历为递增序 举一反三: 学习完本题的思路你可以解决如下题目: BM30. 二叉搜索树与双向链表 BM37. 二叉搜索树的最近公共祖先 方法一:递归(推荐使用) 知识点1:二叉 展开全文
头像 AimerAimer
发表于 2022-01-19 17:43:30
题意:         给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。         二叉搜索树满足每个节点的左子节点小于 展开全文
头像 空中转体一周半
发表于 2022-02-28 13:44:24
利用二叉搜索树的特性:中序遍历为升序,遍历二叉树即可。每次记录一下前驱节点的值,判断当前节点是否比前驱节点大,如果比前驱小,则遍历结束。如果遍历到最后一个节点还是满足则为二叉搜索树。 /* * public class TreeNode { * int val = 0; * Tree 展开全文
头像 xqxls
发表于 2022-03-07 21:59:10
题意整理 给定一颗二叉树。 判断该树是否是二叉搜索树。 方法一(递归) 1.思路整理 判断搜索二叉树(BST): 考虑搜索二叉树的定义,每一个节点的值应该大于等于左子树中的最大值,小于等于右子树中的最小值。所以我们可以利用递归遍历每一个节点,如果某个节点不满足定义,则不合法,直接返回false。 展开全文
头像 牛客420080390号
发表于 2022-03-18 15:53:27
```# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定 展开全文
头像 菜鸡孙连城
发表于 2022-03-19 15:19:56
第一种方法:二叉搜索树的中序遍历一定是递增的,只需判断中序遍历的数组即可 function isValidBST( root ) { function inOrder(root){ if(root==null) return; inOrder(root.left); 展开全文
头像 蛋糕店筹备中
发表于 2022-03-02 17:23:47
方法一:判断每一个结点,必定存在该结点的值大于左子树的最大值,小于右子树的最小值 * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; * * C语言声明定义全局变量 展开全文
头像 叫什么都行呀
发表于 2022-10-04 15:45:59
bool isValidBST(struct TreeNode* root ) {     // write code here      展开全文
头像 ETO-ccc
发表于 2023-03-27 12:07:23
/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) { 展开全文
头像 unixxxxxx
发表于 2022-03-24 09:40:25
为什么没有 python 版本?? # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中 展开全文
头像 littlemuggle
发表于 2022-05-04 21:51:23
误区:单独判断某一个子树是否满足搜索树是不够的 class Solution: def isValidBST(self , root: TreeNode) -> bool: # write code here if not root: 展开全文

问题信息

难度:
131条回答 1965浏览

热门推荐

通过挑战的用户

查看代码