structnode{ int left;int right;int val; };node t[110];
int n,sum,ans = 999999;
boolcheck(int rt, int a, int b, int flag){ if (rt == 0) { if(flag == 2) returntrue; elsereturnfalse; } if (rt == a || rt == b) { if(check(t[rt].left, a, b, flag + 1) || check(t[rt].right, a, b, flag + 1)) returntrue; }else { if(check(t[rt].left, a, b, flag) || check(t[rt].right, a, b, flag)) returntrue; }
returnfalse; }
intmain(){ cin >> n; for (int i = 1; i <= n; i++) { cin >> t[i].val >> t[i].left >> t[i].right; }
cout << check(1,1,2,0) << endl;
return0; }
二叉树的深度
题目描述
这里有一个二叉树
我们想要确定二叉树上每一个结点的深度是多少(根节点的深度定义为0)
输入格式
输入n,代表n组关系
同时代表了只有n个结点分别是1,2,3,4,5
接下来n + 1行,每一行输入两个数a,b
分别代表上一个结点的左右子结点
输出格式
打印除了根节点外每一个二叉树的结点的深度
输入输出样例
输入 #1
5 13 2 3 4 0 0 12 4 5 20 0 0 40 0 0
输出 #1
1 1 2 2
AC模版
#include<bits/stdc++.h> usingnamespace std;
structnode{ int left;int right;int val; };node t[110];