Second Minimum Node In a Binary Tree

Given a non-empty special binary tree consisting of nodes with non-negative values, where each node has exactly two or zero sub-nodes. If a node has two sub-nodes, then this node's value is the smaller value among its two sub-nodes. More formally, the property root.val = min(root.left.val, root.right.val) always holds.

Given such a binary tree, output the second minimum value in the set made of all node values in the whole tree.

If no such second minimum value exists, return -1 instead.

Example 1
      2
     / \
    2   5
       / \
      5   7
Inputroot = [2,2,5,null,null,5,7]
Output5
The smallest value is 2, and the second smallest value is 5.
Example 2
        2
       / \
      2   2
Inputroot = [2,2,2]
Output-1
The smallest value is 2, but there is no second smallest value.

Constraints

  • The number of nodes in the tree is in the range [1, 25].
  • 1 <= Node.val <= 2^31 - 1
  • root.val == min(root.left.val, root.right.val) for each internal node of the tree.

Asked at 2 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