编写算法c语言,交换二叉树中所有结点的左右子树。
时间: 2023-06-11 21:04:15 浏览: 115
交换二叉树中所有结点的左右子树
5星 · 资源好评率100%
好的,以下是一个简单的程序代码,可以实现交换二叉树中所有节点的左右子树:
```
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
struct TreeNode* invertTree(struct TreeNode* root){
if (root == NULL) return NULL;
struct TreeNode *left = root->left;
root->left = invertTree(root->right);
root->right = invertTree(left);
return root;
}
```
这个程序采用了递归的方式,从上到下进行交换。首先判断当前节点是不是 NULL,如果是就返回 NULL。然后交换当前节点的左右子树,最后返回根节点。
阅读全文