Flip a binary tree. Example: Input: 4 / \ 27 / \ / \ 1369 Output: 4 / \ 72 / \ / \ 9631
Problem-solving ideas:
Binary tree problem, generally can be solved by recursively
C++
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { TreeNode* node = root; TreeNode* tmp = NULL; if(node) { tmp = node->left; node->left = node->right; node->right = tmp; invertTree(node->left); invertTree(node->right); } return root; } };
Python
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def invertTree(self, root: TreeNode) -> TreeNode: node = root if node: tmp = node.left node.left = node.right node.right = tmp self.invertTree(node.left) self.invertTree(node.right) return root