Binary Tree Pruning

Given the root of a binary tree, return the same tree where every subtree of the given tree not containing a 1 has been removed.

A subtree of a node node is node plus every node that is a descendant of node.

Example 1
        1                  1
         \        ->        \
          0                  0
         / \                  \
        0   1                  1
Inputroot = [1,null,0,0,1]
Output[1,null,0,null,1]
Only the nodes that are part of a subtree containing a 1 remain in the returned tree.
Example 2
        1                   1
       / \       ->          \
      0   1                   1
     / \ / \                   \
    0  0 0  1                   1
Inputroot = [1,0,1,0,0,0,1]
Output[1,null,1,null,1]
All subtrees containing only 0 values are removed, leaving the pruned tree shown in the output.

Constraints

  • The number of nodes in the tree is in the range [1, 200].
  • Node.val is either 0 or 1.

Asked at 4 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate