请使用C++编程语言正确地实现一个二叉链表的前序遍历算法,列出一个具体例子?
时间: 2024-11-10 21:26:40 浏览: 19
在C++中,我们可以使用递归的方式来实现二叉链表的前序遍历(根节点 -> 左子树 -> 右子树)。这里是一个简单的示例:
```cpp
// 定义二叉链表节点结构体
struct TreeNode {
int val; // 节点值
TreeNode* left; // 左子节点指针
TreeNode* right; // 右子节点指针
TreeNode(int x) : val(x), left(NULL), right(NULL) {} // 构造函数
};
// 前序遍历函数
void preorderTraversal(TreeNode* root) {
if (root != NULL) { // 如果当前节点不为空
cout << root->val << " "; // 遍历当前节点
// 递归遍历左子树和右子树
preorderTraversal(root->left);
preorderTraversal(root->right);
}
}
```
例如,如果我们有一个如下的二叉树:
```
1
/ \
2 3
/ \ \
4 5 6
```
调用`preorderTraversal`函数会输出:`1 2 4 5 3 6`。
阅读全文