#P1741. Binary Tree Validation
Binary Tree Validation
Description
二叉树 是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之分。
这里引入本题使用的基本概念:
结点:包含一个数据元素及若干指向子树分支的信息
结点的度:一个结点拥有子树的数目称为结点的度
叶子结点:也称为终端结点,没有子树的结点或者度为零的结点
树的深度:也称为树的高度,树中所有结点的层次最大值称为树的深度
小A同学对二叉树的学习比较透彻,所以他说只要满足以下条件的二叉树他都知道是不是合法:
- 一棵二叉树只有度为0的结点和度为2的结点
- 已知该二叉树的深度 和每层的叶子节点个数
判断一棵二叉树是否合法即判断该种条件限制下的二叉树是否存在,你的任务是帮他判断题目给出的数据是否合法?
Input Format
每组测试包含多个测试用例。第一行包含测试用例数量 ,下面是测试用例的描述。
每个测试用例的第一行包含一个整数 。
每个测试用例的第二行包含 个整数 表示二叉树自上而下每层的叶子节点个数。
Output Format
对于每个测试用例,应该输出单个字符串。如果判断该组样例合法即输出YES,反之则输出NO。
2
3
0 0 4
3
0 1 3
YES
NO
Hint
Note
第一组测试用例即为上图,是深度为3的满二叉树;第二组测试用例中,不存在任何一个二叉树符合题目条件;