问题
给定一颗二叉查找树,其中结点上存储整数关键字,请你判断它是否一棵正则二叉树,即每个内部结点均有两个子结点。
输入
第一行是测试样例数 T(T <= 20),接下来是 T 个测试样例。对于每个测试样例,第一行是二叉树结点个数 n (n <= 30),第二行是一个含有n个关键字的序列,表示二叉树的先序遍历结果。保证关键字均不相同。
输出
如果二叉查找树是正则的,则输出“YES”, 否则输出”NO”,每个输出占一行。
输入样例
5
2
10 5
3
1 4 7
3
5 3 2
3
10 4 23
5
10 6 5 8 20
输出样例
NO
NO
NO
YES
YES
思路
由于是先序遍历,一个整数串可以分为三部分:sub = [root, (left), (right)]
1. len(sub)==0,说明为叶子节点,返回true。
2. len(sub)%2==0,说明是偶