二叉树前中后序遍历
时间: 2023-06-28 17:12:02 浏览: 100
二叉树的遍历方式可以分为三种:前序遍历、中序遍历和后序遍历。
前序遍历:先访问根节点,然后遍历左子树,最后遍历右子树。
中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树。
后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点。
下面是三种遍历方式的代码实现(假设二叉树的节点结构体为Node,其中包含左右子节点指针left和right):
前序遍历:
```
void preOrderTraversal(Node* root) {
if (root == nullptr) {
return;
}
std::cout << root->val << " "; // 访问根节点
preOrderTraversal(root->left); // 遍历左子树
preOrderTraversal(root->right); // 遍历右子树
}
```
中序遍历:
```
void inOrderTraversal(Node* root) {
if (root == nullptr) {
return;
}
inOrderTraversal(root->left); // 遍历左子树
std::cout << root->val << " "; // 访问根节点
inOrderTraversal(root->right); // 遍历右子树
}
```
后序遍历:
```
void postOrderTraversal(Node* root) {
if (root == nullptr) {
return;
}
postOrderTraversal(root->left); // 遍历左子树
postOrderTraversal(root->right); // 遍历右子树
std::cout << root->val << " "; // 访问根节点
}
```
阅读全文