Given the root of a binary tree, invert it in place and return the root.
Can you implement both recursive DFS and iterative BFS?