题目描述
翻转一棵二叉树。
示例
输入:
4 / \ 2 7 / \ / \ 1 3 6 9
输出:
4 / \ 7 2 / \ / \ 9 6 3 1
题目要求
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 12 }
题解
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * struct TreeNode *left; 6 * struct TreeNode *right; 7 * }; 8 */ 9 10 struct TreeNode* invertTree(struct TreeNode* root){ 11 if(root==NULL)return root; 12 struct TreeNode *r=(struct TreeNode*)malloc(sizeof(struct TreeNode)); 13 r->val=root->val; 14 if(root->left!=NULL)r->right=invertTree(root->left); 15 else r->right=NULL; 16 if(root->right!=NULL)r->left=invertTree(root->right); 17 else r->left=NULL; 18 return r; 19 }