首页 > 试题广场 >

BST判定

[编程题]BST判定
  • 热度指数:839 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

判断给定的二叉树是否为二分查找树。假设树的每个节点以整数为键值,且不同节点的键值互不相等。二分查找树成立的判定条件:

对任何非叶子节点A,如果A存在左子树,则A的键值大于其左子树所有节点的键值,且,如果A存在右子树,则A的键值小于其右子树所有节点的键值


输入描述:
第一行:根节点键值;

第二行开始,二叉树的结构,每行代表一组根节点与左右子节点的对应关系,-1代表空节点。格式:

根节点键值:左子节点键值|右子节点键值

例如,

5:3|-1

表示键值为5的节点,左子节点的键值为3,右子节点为空节点

假设:所有节点的键值非负,且不超过1023


输出描述:
判断结果,0表示输入不是二分查找树,1表示输入是二分查找树
示例1

输入

5
5:4|7
4:3|8
7:2|-1
3:-1|-1
8:-1|-1
2:-1|-1

输出

0
头像 白伟仝
发表于 2020-07-25 15:16:15
有一半的代码都在处理输入格式: import java.util.*; class TreeNode{ //定义树节点 int val; TreeNode left, right; TreeNode(int n){val = n;} } public class Mai 展开全文
头像 思考的陈
发表于 2021-09-11 10:10:16
修改了楼上题解的辅助方法check import java.util.*; class TreeNode{ int val; TreeNode left=null,right=null; TreeNode(int val){ this.val=val;} } public c 展开全文

问题信息

上传者:小小
难度:
13条回答 2925浏览

热门推荐

通过挑战的用户

查看代码