///'要按中序次序输出二叉树中各结点的值及其所对应的层次数,可以使用递归算法来实现。//n//n首先,在二叉树的节点结构中添加一个成员变量level表示节点所在的层次数。节点结构如下://n//ncpp//nstruct TreeNode {//n int val;//n int level;//n TreeNode* left;//n TreeNode* right;//n};//n//n//n然后,定义一个成员函数inorderTraversal,该函数接收一个参数root,表示二叉树的根节点。函数的作用是按中序次序输出二叉树中各节点的值及其所对应的层次数。//n//ncpp//nvoid inorderTraversal(TreeNode* root) {//n static int level = 0; // 静态变量,表示当前层次数//n if (root == nullptr) {//n return;//n }//n //n inorderTraversal(root->left); // 递归遍历左子树//n //n // 输出节点的值及层次数//n cout << ///'Node: ///' << root->val << ///', Level: ///' << root->level << endl;//n //n inorderTraversal(root->right); // 递归遍历右子树//n}//n//n//n接下来,可以创建一个二叉树,并调用inorderTraversal函数输出节点的值及层次数。//n//ncpp//n// 创建二叉树//nTreeNode* createTree() {//n TreeNode* root = new TreeNode{1, 0};//n root->left = new TreeNode{2, 0};//n root->right = new TreeNode{3, 0};//n root->left->left = new TreeNode{4, 0};//n root->left->right = new TreeNode{5, 0};//n root->right->left = new TreeNode{6, 0};//n root->right->right = new TreeNode{7, 0};//n return root;//n}//n//nint main() {//n TreeNode* root = createTree(); // 创建二叉树//n inorderTraversal(root); // 按中序次序输出节点的值及层次数//n return 0;//n}//n//n//n以上代码会输出如下结果://n//n//nNode: 4, Level: 0//nNode: 2, Level: 1//nNode: 5, Level: 1//nNode: 1, Level: 2//nNode: 6, Level: 2//nNode: 3, Level: 3//nNode: 7, Level: 3//n///

C++ 中序遍历二叉树并输出节点值和层级:单变量成员函数实现

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

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