简单二叉树遍历
时间: 2023-06-28 14:08:32 浏览: 87
对于二叉树的遍历,有三种基本方式:
1.先序遍历(根-左-右):对于当前节点,先输出它,然后遍历它的左子树,最后遍历它的右子树。
2.中序遍历(左-根-右):对于当前节点,先遍历它的左子树,然后输出它,最后遍历它的右子树。
3.后序遍历(左-右-根):对于当前节点,先遍历它的左子树,然后遍历它的右子树,最后输出它。
下面给出一个简单的二叉树结构体定义和递归实现的遍历代码:
```c++
// 二叉树结构体定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 先序遍历
void preOrder(TreeNode* root) {
if (root == NULL) return;
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
// 中序遍历
void inOrder(TreeNode* root) {
if (root == NULL) return;
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
// 后序遍历
void postOrder(TreeNode* root) {
if (root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
```
这里的遍历函数都是基于递归实现的,对于每个节点,都先遍历左子树,再遍历右子树,最后输出当前节点。需要注意的是,在遍历前需要判断当前节点是否为空,如果为空则直接返回。
阅读全文