ppta

对称二叉树

http://www.nowcoder.com/questionTerminal/7aadbb649ae04343a8b37c67497e03d4

include

include

include

include

include

include

using namespace std;

inline int read()
{
int x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=x10+ch-48;ch=getchar();}
return x
f;
}

int n,son[1000050][2],val[1000050],size[1000050];

//son[i][0]为i的左儿子
//son[i][1]为i的右儿子

inline void dfs(int u)
{
size[u]=1;
if (son[u][0]!=-1)
{
dfs(son[u][0]);
size[u]+=size[son[u][0]];
}
if (son[u][1]!=-1)
{
dfs(son[u][1]);
size[u]+=size[son[u][1]];
}
}

inline bool check(int u,int v)
{
if (u==-1 && v==-1)
return true;
if (u!=-1 && v!=-1 && val[u]==val[v] && check(son[u][0],son[v][1]) && check(son[u][1],son[v][0]))
return true;
return false;
}

int main()
{
n=read();
for (int i=1;i<=n;i++)
val[i]=read();
for (int i=1;i<=n;i++)
{
son[i][0]=read();
son[i][1]=read();
}
dfs(1);
int ans=0;
for (int i=1;i<=n;i++)
if (check(son[i][0],son[i][1]))
ans=max(ans,size[i]);
cout << ans << endl;
return 0;
}

全部评论

相关推荐

白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务