题目
求二叉树的深度
思路
递归先求左子树的深度,再求右子树的深度,最后+1
代码
class binary_search_tree:
def __init__(self,root=None):
self.root = root
def add(self,value):
self.root = self.__add(self.root,value)
def __add(self,node,value):
if node is None:
return Node(value)
if node._item < value:
node._right = self.__add(node._right,value)
elif node._item > value:
node._left = self.__add(node._left,value)
elif node._item == value:
pass
return node
def print_preorder(self):
self.__print_preorder(self.root)
print(' ')
def __print_preorder(self,node):
if node is None:
return None
print('[',node._item,']',end='')
self.__print_preorder(node._left)
self.__print_preorder(node._right)
def depth(self):
return self.__depth(self.root)
def __depth(self,node):
if node is None:
return 0
left_depth = self.__depth(node._left)
right_depth = self.__depth(node._right)
return max(left_depth,right_depth)+1