Binary Tree Upside Down is an example of tree problems. In this post we will see how we can solve in Javascript.

Problem Description

Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tree where the original right nodes turned into left leaf nodes. Return the new root.

For example: Given a binary tree {1,2,3,4,5},

     / \
    2   3
   / \
  4   5

return the root of the binary tree [4,5,2,#,#,3,1].

    / \
   5   2
      / \
     3   1

Implementation: Please check the main.js snippet for the solution.  If you have different approach in mind or have any suggestion for this implementation feel free to share in the comment below. Thanks!