C++二叉树的中序遍历
时间: 2023-11-24 17:07:25 浏览: 31
二叉树的中序遍历可以通过递归实现。具体实现过程如下:
1.如果树为空,则返回。
2.对根节点的左子树进行递归遍历。
3.输出根节点的值。
4.对根节点的右子树进行递归遍历。
代码实现如下:
```c++
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void inorderTraversal(TreeNode* root) {
if (root == NULL) return;
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
```
在实际使用中,我们可以将中序遍历的结果存储在一个数组中,然后进行后续的操作。
相关问题
c++二叉树中序遍历
以下是C++中二叉树中序遍历的实现方法:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
void inorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
};
int main() {
TreeNode* root = new TreeNode(1);
root->right = new TreeNode(2);
root->right->left = new TreeNode(3);
Solution s;
s.inorderTraversal(root); // 输出:1 3 2
return 0;
}
```
用C++实现二叉树的中序遍历
以下是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 inorderTraversal(TreeNode* root) {
if (root == NULL) {
return;
}
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
int main() {
// 构建二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
// 中序遍历
cout << "Inorder Traversal: ";
inorderTraversal(root);
return 0;
}
```