数据结构二叉树先序中序后序遍历递归
时间: 2023-11-04 18:00:40 浏览: 116
二叉树三种遍历的非递归算法C语言
二叉树的先序、中序和后序遍历是通过递归实现的。先序遍历指的是先访问根节点,然后依次对左子树和右子树进行先序遍历;中序遍历指的是先对左子树进行中序遍历,然后访问根节点,最后对右子树进行中序遍历;后序遍历指的是先对左子树进行后序遍历,然后对右子树进行后序遍历,最后访问根节点。
递归实现先序遍历的代码如下:
```
void preOrderTraversal(TreeNode *root) {
if (root == nullptr) {
return;
}
cout << root->val << " "; // 访问根节点
preOrderTraversal(root->left); // 先序遍历左子树
preOrderTraversal(root->right); // 先序遍历右子树
}
```
递归实现中序遍历的代码如下:
```
void inOrderTraversal(TreeNode *root) {
if (root == nullptr) {
return;
}
inOrderTraversal(root->left); // 中序遍历左子树
cout << root->val << " "; // 访问根节点
inOrderTraversal(root->right); // 中序遍历右子树
}
```
递归实现后序遍历的代码如下:
```
void postOrderTraversal(TreeNode *root) {
if (root == nullptr) {
return;
}
postOrderTraversal(root->left); // 后序遍历左子树
postOrderTraversal(root->right); // 后序遍历右子树
cout << root->val << " "; // 访问根节点
}
```
阅读全文