c++二叉树的前序遍历遍历法
时间: 2023-08-03 22:09:15 浏览: 108
C++中实现二叉树的前序遍历可以使用递归或迭代的方式。以下是使用递归方式实现二叉树的前序遍历的示例代码:
```cpp
#include <iostream>
using namespace std;
// 二叉树节点定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void preorderTraversal(TreeNode* root) {
if (root == NULL)
return;
cout << root->val << " "; // 先访问根节点
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
```
如果要使用迭代方式实现二叉树的前序遍历,可以借助栈来辅助实现。以下是使用迭代方式实现二叉树的前序遍历的示例代码:
```cpp
#include <iostream>
#include <stack>
using namespace std;
// 二叉树节点定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void preorderTraversal(TreeNode* root) {
if (root == NULL)
return;
stack<TreeNode*> s;
s.push(root);
while (!s.empty()) {
TreeNode* node = s.top();
s.pop();
cout << node->val << " "; // 访问当前节点
if (node->right)
s.push(node->right); // 右子树入栈
if (node->left)
s.push(node->left); // 左子树入栈
}
}
```
以上是C++实现二叉树前序遍历的两种方式,可以根据需要选择递归或迭代来实现。
阅读全文