题目要求:
给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2:
输入:root = [2,1,3] 输出:[2,3,1]示例 3:
输入:root = [] 输出:[]
思路:
通过函数递归实现子树的一次交换,通过设置左右子树变量保存变换
代码实现:
//给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
#include<stdint.h>
#include<stdlib.h>
typedef struct BinaryTreeNode
{
int data;
struct BinaryTreeNode* left;
struct BinaryTreeNode* right;
}BTNode;
BTNode* InvertTree(BTNode* root)
{
if (root == NULL)
{
return NULL;
}
BTNode* left = InvertTree(root->left);
BTNode* right = InvertTree(root->right);
root->right = left;
root->left = right;
return root;
}