二叉树的链式中序遍历完整代码
时间: 2024-11-20 16:30:11 浏览: 4
二叉树的先序遍历,中序遍历,后序遍历,层级遍历
在C++中,链式(即递归)的二叉树中序遍历可以通过定义一个结构体或类表示节点,并使用递归来完成。这里是一个简单的例子:
```cpp
#include <iostream>
// 定义二叉树节点结构
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 中序遍历函数
void inorderTraversal(TreeNode* root) {
if (root != NULL) {
// 遍历左子树
inorderTraversal(root->left);
// 访问当前节点
std::cout << root->val << " ";
// 遍历右子树
inorderTraversal(root->right);
}
}
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);
// 开始中序遍历
std::cout << "Inorder traversal of the binary tree is: ";
inorderTraversal(root);
// 清理内存(如果需要)
delete root; // 假设没有使用智能指针,记得释放新创建的节点
return 0;
}
```
这个代码首先定义了一个`TreeNode`结构,然后定义了`inorderTraversal`函数,该函数接受一个根节点指针,按照“左-根-右”的顺序遍历二叉树。在`main`函数中,我们创建了一个简单的二叉树并调用中序遍历。
阅读全文