题目描述:
输入n表示有n个节点1,2,3.,,,n ,然后输入n-1行每行两个数表示两节点间的边 
每次挑选两个叶子i,j.从i->j 且不会重复走过的点,并给走过的边赋值,  问是否所有边都可以随意赋值(不互相制约)
ac代码:
如果一个点的度数只有2 那么相邻两条边必定互相制约
#include<bits/stdc++.h>
using namespace std;
int main(){
    int map1[100009];
    int n;
    cin>>n;
    memset(map1,0,sizeof(map1));
    int m=n;
    n--;
    while(n--){
        int x,y;
        scanf("%d %d",&x,&y);
        map1[x]++;
        map1[y]++;
    }
    for(int i=1;i<=m;i++){
        if(map1[i]==2) {
            printf("NO\n");
            return 0;
        }
    }
    printf("YES\n");

}