1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树相关的知识,希望对你有一定的参考价值。
https://pintia.cn/problem-sets/994805342720868352/problems/994805359372255232
建树并给其赋值,如果是完全二叉树,那么maxid一定为n,否则则不是完全二叉树。
找根节点,就找到入度为0的点就是根节点。
#include<bits/stdc++.h>
using namespace std;
int l[30],r[30];
int n,root,last,maxid,d[25];
void dfs(int u,int k)
if(maxid<k)
maxid=k,last=u;
if(l[u]!=-1) dfs(l[u],k*2);
if(r[u]!=-1) dfs(r[u],k*2+1);
int main(void)
memset(l,-1,sizeof l);
memset(r,-1,sizeof r);
cin>>n;
for(int i=0;i<n;i++)
string a,b; cin>>a>>b;
if(a!="-") l[i]=stoi(a),d[stoi(a)]++;
if(b!="-") r[i]=stoi(b),d[stoi(b)]++;
for(int i=0;i<n;i++) if(d[i]==0) root=i;
dfs(root,1);
if(maxid==n) printf("YES %d",last);
else printf("NO %d",root);
return 0;
以上是关于1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树的主要内容,如果未能解决你的问题,请参考以下文章
PAT甲级——1110 Complete Binary Tree (完全二叉树)
PAT (Advanced Level) 1110. Complete Binary Tree (25)
PAT甲级1110 Complete Binary Tree (25分)
1110 Complete Binary Tree (25分) 判断一棵二插树是否是完全二叉树