Problem D: 验证二叉搜索树
Memory Limit:128 MB
Time Limit:1.000 S
Judge Style:Text Compare
Creator:
Submit:85
Solved:34
Description
二叉搜索树(Binary
Search Tree)定义如下:
(1)
节点的左子树只包含小于当前节点的数。
(2) 节点的右子树只包含大于当前节点的数。
(3) 所有左子树和右子树自身必须也是二叉搜索树。
给定一前序二叉树的数据,请构造根节点为 root
的二叉树,并判断这棵树是否是二叉搜索树。如果不是,则输出从第一个不符合要求的节点开始的往上各节点的值,直到根节点。
Input
给定一棵树的前序遍历,如果子节点是空,则用0表示,并以-1结尾。
例如:
4 2 1 0 0 3 0 0 3 5 0 0 7 0 0 -1
Output
如果是二叉搜索树,则显示true,如果不是则输出false,并输出从错误的节点开始的父节点序列,直到根节点。
例如:
false
3 4
Sample Input Copy
4 2 1 0 0 3 0 0 3 5 0 0 7 0 0 -1
Sample Output Copy
false
3 4
HINT
各个节点的值大于0,树的深度小于20层。