给你一棵二叉树的根节点 root,翻转这棵二叉树,并返回其根节点。用c语言
时间: 2024-11-05 14:28:25 浏览: 16
erchashu.rar_二叉树_叶子节点
在C语言中,你可以通过递归的方式来实现二叉树的翻转。给定二叉树的根节点root,我们需要交换每个节点的左右子节点。以下是递归函数的基本思路:
```c
// 定义二叉树结点结构体
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
// 翻转二叉树的函数
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;
}
```
这个函数首先检查根节点是否为空,如果为空则直接返回。然后它会临时存储当前节点的左孩子,将左孩子指向右孩子,右孩子指向左孩子,再分别对新的左右子树进行递归翻转。最后返回翻转后的根节点。
阅读全文