1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #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;
- }
|