#include #include // 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; }