设哈夫曼树中共有99个节点,则该树中共有几个叶子节点?若采用二叉链表存储,则该树中共有几个空指针域?

设哈夫曼树中共有99个节点,则该树中共有几个叶子节点?若采用二叉链表存储,则该树中共有几个空指针域?
50个叶子节点,就是100个空指针域,答案说是51个,不是哈夫曼树每个叶子两个空指针域,50个不就是100个吗,

参考GPT:
对于一棵有 $n$ 个节点的哈夫曼树,它一定有 $n+1$ 个叶子节点。因为哈夫曼树的构造是从叶子节点开始的,每次选择两个最小的节点合并为一个新的节点,所以最终只会剩下一个根节点,而根节点没有子节点,所以叶子节点数目为 $n+1$。

因此,对于本题中有 99 个节点的哈夫曼树,它共有 $99+1=100$ 个叶子节点。

如果采用二叉链表存储哈夫曼树,每个节点需要存储三个元素:权值、左子节点指针和右子节点指针。其中,叶子节点的左右子节点指针都应该是空指针,非叶子节点的左右子节点指针都不是空指针。

对于本题中有 99 个节点的哈夫曼树,它共有 $100-1=99$ 条边,每条边都对应一个节点的左或右子节点指针。由于每个节点都有两个子节点指针,所以共有 $99 \times 2 = 198$ 个子节点指针。由于该哈夫曼树有 100 个节点,其中 100 个节点都需要存储权值信息,所以共有 $198-100=98$ 个空指针域。