文章

16

粉丝

0

获赞

51

访问

2.7k

头像
二叉树2 题解:用二叉树的性质解
P1264 北京大学机试题
发布于2026年3月21日 19:45
阅读数 36

在按层次编号的完全二叉树中,对于任意一个编号为k的节点:它的左孩子编号为 2k 它的右孩子编号为 2k + 1

#include<bits/stdc++.h>
using namespace std;

int main() {
    long long m, n;
    while (cin >> m >> n) {
        if (m == 0 && n == 0) break; // 若有以 0 0 结尾的习惯可加此判断,视具体评测机而定       
        long long count = 0;
        long long left = m;
        long long right = m;
        // 只要当前层的最左端还在树的总节点范围内,就继续统计
        while (left <= n) {
            if (right <= n) {
                // 如果当前层最右端也没越界,说明这层在这棵子树里是满的
                count += (right - left + 1);
            } else {
                // 如果最右端越界了,说明只能取到 n
          &n...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发