Given a tree, you are supposed to tell if it is a complete binary tree.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤20) which is the total number of nodes in the tree – and hence the nodes are numbered from 0 to N−1. Then N lines follow, each corresponds to a node, and gives the indices of the left and right children of the node. If the child does not exist, a - will be put at the position. Any pair of children are separated by a space.
output Specification:
For each case, print in one line YES and the index of the last node if the tree is a complete binary tree, or NO and the index of the root if not. There must be exactly one space separating the word and the number.
Sample Input 1:
1 2 3 4 5 6 7 8 9 10
9 7 8 - - - - - - 0 1 2 3 4 5 - - - -
Sample output 1:
1
YES 8
Sample Input 2:
1 2 3 4 5 6 7 8 9
8 - - 4 5 0 6 - - 2 3 - 7 - - - -
Sample output 2:
1
NO 1
2. 解析
查找根
入度为0,indegree[i]
层序判断
1 2 3 4 5 6 7 8 9 10
if (v[temp].lchild!=-1) { q.push(v[temp].lchild); if (flag==1) { complete=false; } }else{ flag=1; }