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 7Input
root = [2,2,5,null,null,5,7]Output
5The smallest value is 2, and the second smallest value is 5.
Example 2
2
/ \
2 2Input
root = [2,2,2]Output
-1The 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 - 1root.val == min(root.left.val, root.right.val)for each internal node of the tree.