题目: 给出一棵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(加班没时间,,,写了个水题,签到) 代码:

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);
}