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
The 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.
Top comments (0)