This question was asked recently in the phone interview
/**
* A tournament tree is a binary tree
* where the parent is the minimum of the two children.
* Given a tournament tree find the second minimum value in the tree.
* A node in the tree will always have 2 or 0 children.
* Also all leaves will have distinct and unique values.
* 2
* / \
* 2 3
* / \ / \
* 4 2 5 3
*
* In this given tree the answer is 3.
*/
class Node {
Integer value;
Node left, right;
Node(Integer value, Node left, Node right) {
this.value = value;
this.left = left;
this.right = right;
}
}
class Solution {
/**
* This should return the second minimum
* int value in the given tournament tree
*/
public static Integer secondMin(Node root) {
}
}