#include <iostream>// 定义二叉树节点
struct BinaryTreeNode {int data;BinaryTreeNode* left;BinaryTreeNode* right;BinaryTreeNode(int val) : data(val), left(nullptr), right(nullptr) {}
};// 构建二叉树
BinaryTreeNode* buildBinaryTree() {int val;std::cin >> val;if (val == -1) { // 如果输入-1则表示该节点为空return nullptr;}BinaryTreeNode* node = new BinaryTreeNode(val);node->left = buildBinaryTree();node->right = buildBinaryTree();return node;
}// 中序遍历输出二叉树节点值
void printBinaryTreeInOrder(BinaryTreeNode* node) {if (node != nullptr) {printBinaryTreeInOrder(node->left);std::cout << node->data << " ";printBinaryTreeInOrder(node->right);}
}int main() {BinaryTreeNode* root = buildBinaryTree();std::cout << "中序遍历结果:";printBinaryTreeInOrder(root);return 0;
}
上述代码通过递归实现输入并构建一颗二叉树,然后对该树进行了中序遍历,并输出所有节点的值,输出结果即为中序遍历的结果。