0%

51nod-2423-叶子节点的数量

题目:
给出一棵n个节点的树,节点编号为1-n(根节点编号为1),求这棵树叶子结点的数量。
例如:

1─2─4─5
└─3

其中3和5是叶子节点,输出2。

输入
第一行:1个数n(1 < n <= 1000),表示树的节点数量。
后面n-1行:每行2个数x y,表示节点x是节点y的父节点(1 <= x, y <= n)。
输出
输出1个数,表示这棵树有多少个叶子节点。
输入样例
5
1 2
1 3
2 4
4 5
输出样例
2
解法:
记录是否有子节点即可,最后没有子节点的即为叶子节点
ps(加班没时间,,,写了个水题,签到)
代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using namespace std;
int a[1010];
int main()
{
int n;
scanf("%d", &n);
int p = n -1 ;
int ans = 0;
while(p--)
{
int s,e;
scanf("%d%d", &s, &e);
a[s]++;
}
for(int i = 1; i <= n; i++)
if(a[i] == 0)
ans++;
printf("%d\n", ans);
}