|
|
@@ -0,0 +1,41 @@ |
|
|
|
#include <stdio.h> |
|
|
|
#include <stdlib.h> |
|
|
|
|
|
|
|
// Definition for a binary tree node. |
|
|
|
struct TreeNode { |
|
|
|
int val; |
|
|
|
struct TreeNode *left; |
|
|
|
struct TreeNode *right; |
|
|
|
}; |
|
|
|
|
|
|
|
void printTree(struct TreeNode* tree) { |
|
|
|
if (tree != NULL) { |
|
|
|
printf(" %d ", tree->val); |
|
|
|
printTree(tree->left); |
|
|
|
printTree(tree->right); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
struct TreeNode* invertTree(struct TreeNode* root){ |
|
|
|
if (root != NULL) { |
|
|
|
struct TreeNode* temp = root->right; |
|
|
|
root->right = root->left; |
|
|
|
root->left = temp; |
|
|
|
invertTree(root->left); |
|
|
|
invertTree(root->right); |
|
|
|
} |
|
|
|
return root; |
|
|
|
} |
|
|
|
|
|
|
|
int main() { |
|
|
|
struct TreeNode l = { 2, NULL, NULL }; |
|
|
|
struct TreeNode r = { 3, NULL, NULL }; |
|
|
|
struct TreeNode tree = { 1, &l, &r}; |
|
|
|
struct TreeNode* inverted = invertTree(&tree); |
|
|
|
printf("Expected: 1 3 2 \n"); |
|
|
|
printf("Got:"); |
|
|
|
printTree(inverted); |
|
|
|
printf("\n"); |
|
|
|
return 0; |
|
|
|
} |