Jane Street Interview Question

Make it tail recursive

Interview Answers

Anonymous

Nov 5, 2010

let depth n = let rec loop n k = match n with | Leaf -> k 0 | Node (_, left, right) -> loop left (fun v1 -> loop right (fun v2 -> k (1 + max v1 v2))) in loop n (fun x -> x)

4

Anonymous

Dec 24, 2017

max_depth = 0 def dfs(node, counter): if node is not None: counter += 1 if node->left is None and node -> right is None: max_depth = max(max_depth, counter) else: dfs(node->left, counter) dfs(node->right, counter)