출처 : Cracking The Coding Interview Q 4.2
class Tree:
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def __init__(self):
self.root = None
def minimal_height_BST(self, arr):
self.root = self.int_to_node(arr)
def int_to_node(self, arr):
if len(arr) == 0:
return None
if len(arr) == 1:
return self.Node(arr[0])
mid = int(len(arr) / 2)
n = self.Node(arr[mid])
n.left = self.int_to_node(arr[:mid])
n.right = self.int_to_node(arr[mid + 1:])
return n
int_to_node(self, arr, start, end)
로 구현하기
왜?
: 배열을 슬라이싱해서 인수(arguments)로 넘겨주면 공간 복잡도(space complexcity)가 커진다.