PAT-A1110

    xiaoxiao2021-03-25  217

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; struct pnode{ int left, right; pnode():left(-1),right(-1){} }node[25]; int father[25]; int main(){ int i, n, id, root, count=0, last=0; char t1[5], t2[5]; memset(father,-1,sizeof(father)); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s %s",&t1,&t2); if(t1[0]!='-'){ sscanf(t1,"%d",&id); node[i].left=id; father[id]=i; } if(t2[0]!='-'){ sscanf(t2,"%d",&id); node[i].right=id; father[id]=i; } } for(i=0;i<n;i++){ if(father[i]==-1){root=i;break;} } queue<int> que; que.push(root); count++; while(!que.empty()){ int front=que.front(); que.pop(); if(node[front].left!=-1){ count++; que.push(node[front].left); last=node[front].left; } else break; if(node[front].right!=-1){ count++; que.push(node[front].right); last=node[front].right; } else break; } if(count<n)printf("NO %d",root); else printf("YES %d",last); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-5922.html

    最新回复(0)