Amazon interview question

Tournament tree

Interview Answer

Anonymous

23 May 2019

class TreeNode { var data: Int var left: TreeNode? var right: TreeNode? init(data: Int) { self.data = data } } class Tree { var root: TreeNode? } class Problem { var tree = Tree() init() { // ... } func getSecondMin(node: TreeNode) -> Int { guard let left = node.left, let right = node.right else { return node.data } if left.data == node.data { let leftMin = getSecondMin(node: left) return min(leftMin, right.data) } else { let rightMin = getSecondMin(node: right) return min(left.data, rightMin) } } func solve() { // find the second minimal value let min = getSecondMin(node: tree.root!) print(min) } }