import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Queue<Integer>queue=new LinkedList<Integer>();
Scanner sc=new Scanner(System.in);
int index=0;
int [][]arr=new int[sc.nextInt()][3];
arr[index++][0]=sc.nextInt();
boolean total=true;
boolean start=false;
for(int i=1;i<arr.length;i++){
int first=sc.nextInt();
int second=sc.nextInt();
boolean in = false;
for(int[] val:arr)
in = in?in:(val[0] == first);
if(in){
arr[first-1][1]=index;
arr[index++][0]=second;
}
else{
arr[second-1][2]=index;
arr[index++][0]=first;
}
}
queue.add(0);
while(!queue.isEmpty()){
index=queue.poll();
if(start&&arr[index][1]>0||arr[index][2]>0&&arr[index][1]==0)
total = false;
start=start?start:arr[index][2]==0;
if(arr[index][1]>0)
queue.add(arr[index][1]);
if(arr[index][2]>0)
queue.add(arr[index][2]);
}
System.out.println(total?"Yes":"No");
}
}
层序遍历是否为完全二叉树
最新推荐文章于 2024-05-20 10:24:40 发布