#+PROPERTY: STUDY_DECK_02 * TODO 0226. Invert Binary Tree :easy: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0226. Invert Binary Tree][0226. Invert Binary Tree]] :END: Given the ~root~ of a binary tree, invert the tree, and return /its root/. *Example 1:* #+begin_src Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] #+end_src *Example 2:* #+begin_src Input: root = [2,1,3] Output: [2,3,1] #+end_src *Example 3:* #+begin_src Input: root = [] Output: [] #+end_src *Constraints:* - The number of nodes in the tree is in the range ~[0, 100]~. - ~-100 <= Node.val <= 100~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: #+end_src ** TODO C++ #+begin_src cpp /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: TreeNode* invertTree(TreeNode* root) { } }; #+end_src