c++设计算法按中序次序输出二叉树中各结点的值及其所对应的层次数
可以使用递归算法按中序遍历二叉树,并记录每个节点的层次数。
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
``
原文地址: https://www.cveoy.top/t/topic/ixJS 著作权归作者所有。请勿转载和采集!