c语言实现倒置一棵二叉树
时间: 2024-11-24 19:26:18 浏览: 28
在C语言中,倒置一棵二叉树通常涉及到递归算法。以下是简单的步骤和一个基本的函数实现:
1. 首先,我们需要定义一个结构体表示二叉树节点,包含`value`、`left`(左孩子)和`right`(右孩子)字段。
```c
typedef struct TreeNode {
int value;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
```
2. 接着,编写一个递归函数`invertTree`来进行倒置操作。该函数接受一个指向当前节点的指针,并返回新的根节点。
```c
TreeNode* invertTree(TreeNode* root) {
if (root == NULL) {
return NULL; // 空节点无需处理
}
// 交换左右子树的位置
TreeNode* temp = root->left;
root->left = root->right;
root->right = temp;
// 对左子树和右子树递归地进行倒置
root->left = invertTree(root->left);
root->right = invertTree(root->right);
return root;
}
```
3. 最后,在需要倒置整个二叉树的地方,创建一个指向根节点的指针并调用上述函数。
```c
int main() {
// 初始化二叉树...
TreeNode* originalRoot = ...;
TreeNode* invertedRoot = invertTree(originalRoot);
// 打印倒置后的树...
// ...
return 0;
}
```
阅读全文