一、题目描述
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
C语言代码
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
// turn the tree p
// note: p is not NULL
void turnTree(struct TreeNode* p){
if(p->left && p->right){
turnTree(p->left);
turnTree(p->right);
struct TreeNode *t = p->left;
p->left = p->right;
p->right = t;
}
else{
if(p->left){
turnTree(p->left);
p->right = p->left;
p->left = NULL;
}
else if(p->right){
turnTree(p->right);
p->left = p->right;
p->right = NULL;
}
else{}
}
}
struct TreeNode* invertTree(struct TreeNode* root){
if(root)
turnTree(root);
return root;
}