翻转一棵二叉树。
示例:
输入:
5
/ \
7 2
/ \ / \
9 6 3 1
输出:
5
/ \
7 2
/ \ / \
9 6 3 1
(基于后序遍历)交换子树模块C代码:
typedef struct TreeNode
{
int data;
struct TreeNode *left;
struct TreeNode *right;
}TreeNode;
struct TreeNode* invertTree(TreeNode* root)
{
if(root!=NULL)
{
invertTree(root->left);
invertTree(root->right);
TreeNode *t=root->left;
root->left=root->right;
root->right=t;
}
return root;
}