Hi, here’s your problem today. This problem was recently asked by LinkedIn:
Given a sorted list of numbers, change it into a balanced binary search tree. You can assume there will be no duplicate numbers in the list.
Here’s a starting point:
from collections import deque class Node: def __init__(self, value, left=None, right=None): self.value = value self.left = left self.right = right def __str__(self): # level-by-level pretty-printer nodes = deque([self]) answer = '' while len(nodes): node = nodes.popleft() if not node: continue answer += str(node.value) nodes.append(node.left) nodes.append(node.right) return answer def createBalancedBST(nums): # Fill this in. print createBalancedBST([1, 2, 3, 4, 5, 6, 7]) # 4261357 # 4 # / \ # 2 6 #/ \ / \ #1 3 5 7