This is a leetcode question which could be found here
You are given a Binary Tree and you are to invert it or swap every left node with its corresponding right node.
Each BinaryTree node has an integer Value, a Left child node, and Right child node. Children nodes can either be BinaryTree themselves or None/Null.
# Given class definition of a binary tree # DO NOT TOUCH THIS class BinaryTree: def __init__(self, value): self.value = value self.left = None self.right = None def invertBinaryTree(tree): if tree is None: return swapLeftAndRight(tree) invertBinaryTree(tree.left) invertBinaryTree(tree.right) def swapLeftAndRight(tree): tree.left, tree.right = tree.right, tree.left
swapLeftAndRight function is the most important part where it does the actual swap of the left and right nodes. Python is really nice where you can put a swap onto one line.
Then you would recursively call the invertBinaryTree function to continue swapping the following left and right child nodes.