156. Binary Tree Upside Down

https://leetcode.com/problems/binary-tree-upside-down/

class Solution:
    def upsideDownBinaryTree(self, root: TreeNode) -> TreeNode:
        if root == None or root.left == None:
            return root
        newRoot = self.upsideDownBinaryTree(root.left)
        root.left.left = root.right
        root.left.right = root
        #clean up root left and right child since we only want root itself to be
        #the new right subtree here.
        root.left = None
        root.right = None
        return newRoot

Last updated

Was this helpful?