# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <algorithm>
# include <iostream>
# define MAX 10
# define Null -1
typedef struct node{
int left;
int right;
}Tree;
int main(){
Tree tree[MAX];
int q[MAX];
char l,r;
int n,root;
int flag[MAX]={0};
scanf("%d\n",&n);
for(int i = 0; i < n; i++){
scanf("%c %c",&l,&r);
getchar();
if(l == '-') tree[i].left = Null;
else{
tree[i].left = l-'0';
flag[l-'0'] = 1; // 表示这个节点已经出现过
}
if(r == '-') tree[i].right = Null;
else{
tree[i].right = r-'0';
flag[r-'0'] = 1;
}
}
for(int i = 0; i < n; i++){
if(!flag[i]){
root = i;
break;
}
}
q[0]=root;
int p;
int front = 0, rear = 1;
int temp = 0;
//层次遍历寻找叶子节点
while(front < rear){
p=q[front++];
if(tree[p].left!=Null)
q[rear++] = tree[p].left;
if(tree[p].right!=Null)
q[rear++] = tree[p].right;
if(tree[p].left==Null && tree[p].right==Null)
{
if(temp) printf(" ");
temp++;
printf("%d",p);
}
}
return 0;
}
解题报告-PAT-List Leaves
最新推荐文章于 2020-10-12 23:20:03 发布