ByteByteGo: Invert Binary Tree
β’ 146 words β’ 1 min β’ updated
ByteByteGo: Invert Binary Tree:
python
from ds import TreeNode
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
"""
def invert_binary_tree(root: TreeNode) -> TreeNode:
if root is None:
return None
root.left, root.right = root.right, root.left
invert_binary_tree(root.left)
invert_binary_tree(root.right)
return rootThe following DOES NOT work:
python
from ds import TreeNode
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
"""
def invert_binary_tree(root: TreeNode) -> TreeNode:
if root is None:
return None
root.left = invert_binary_tree(root.right)
root.right = invert_binary_tree(root.left)
return rootThe swap must happen simultaneously. The following works:
python
from ds import TreeNode
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
"""
def invert_binary_tree(root: TreeNode) -> TreeNode:
if root is None:
return None
root.left, root.right = invert_binary_tree(root.right), invert_binary_tree(root.left)
return root