可以使用递归算法按中序遍历二叉树,并记录每个节点的层次数。

struct TreeNode {
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};

void inorderTraversal(TreeNode* root, int level) {
    if (root == nullptr) {
        return;
    }
    
    inorderTraversal(root->left, level + 1);
    cout << "Node: " << root->val << ", Level: " << level << endl;
    inorderTraversal(root->right, level + 1);
}

int main() {
    // 构建二叉树
    TreeNode* root = new TreeNode(1);
    root->left = new TreeNode(2);
    root->right = new TreeNode(3);
    root->left->left = new TreeNode(4);
    root->left->right = new TreeNode(5);
    root->right->left = new TreeNode(6);
    root->right->right = new TreeNode(7);

    inorderTraversal(root, 1);

    return 0;
}

输出结果为:

Node: 4, Level: 2
Node: 2, Level: 1
Node: 5, Level: 2
Node: 1, Level: 1
Node: 6, Level: 2
Node: 3, Level: 1
Node: 7, Level: 2
``
c++设计算法按中序次序输出二叉树中各结点的值及其所对应的层次数

原文地址: https://www.cveoy.top/t/topic/ixJS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录