二叉树前中后序遍历题
时间: 2023-07-07 18:30:44 浏览: 200
好的,我可以帮你解答关于二叉树前、中、后序遍历的问题。
在二叉树的遍历中,前序遍历指的是先访问根节点,然后遍历左子树,最后遍历右子树;中序遍历指的是先遍历左子树,然后访问根节点,最后遍历右子树;后序遍历指的是先遍历左子树,然后遍历右子树,最后访问根节点。
以递归方式实现二叉树的前序遍历代码如下:
```
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 << " ";
}
```
这些代码都是基于二叉树的节点类`TreeNode`,其中`val`表示节点的值,`left`和`right`分别表示左子树和右子树。
阅读全文