#P250702. AVL树

AVL树

题目描述:

以左右孩子表示法输入一棵二叉树,请判断其是否是AVL树(平衡BST); AVL的性质如下: 1、空树是一个AVL 2、左子树所有结点的值均严格小于根结点的值 3、右子树所有结点的值均严格大于根结点的值 4、左右子树都是AVL(递归定义) 5、不存在任何重复元素 6、左右子树深度差的绝对值不超过1

输入格式:

一共有T组测试数据,每组测试数据的格式如下: 第一行一个正整数n,表示给定的树的节点的数目,规定节点编号 1~n; 接下来n行,每行4个正整数i、k、L、R,分别表示节点编号、节点的值、左孩子编号、右孩子编号; 如果不存在左 / 右孩子,则以0表示。 每组测试数据之间有一个空白行,不影响输入。

输出格式:

T行,若当前测试数据为AVL,输出YES,否则输出NO。 注意都是大写字母。

样例:

3

6
1 5 2 3
2 3 4 0
3 7 5 6
4 1 0 0
5 6 0 0
6 8 0 0

6
1 5 2 3
2 3 4 0
3 7 5 6
4 4 0 0
5 6 0 0
6 8 0 0

6
1 5 2 3
2 3 4 0
3 6 0 5
4 1 0 0
5 7 0 6
6 8 0 0

YES
NO
NO

提示

对于100%的数据:1<=i,k,n<=10000,0<=L,R<=n,1<=T<=10000