我是Python的新手,在HackerRank中遇到了一个老问题,该问题定义了二进制树。我在classes and instances(和下一个)上观看了此视频,以尝试了解下面的代码中发生的事情,但我仍然不完全了解正在发生的事情。
__ init __(self, ...)
的角色,但不确定info
具有什么属性。我也不明白为什么self.left = None
,self.right = None
,self.level = None
。BinarySearchTree
中,有一个没有属性的初始化,我也不理解self.root = None
。即使我不理解下面的大多数代码,我认为如果有人可以解释为什么设置self.____= None
的原因,那将有助于我理解如何定义二叉搜索树。
class Node:
def __init__(self, info):
self.info = info
self.left = None
self.right = None
self.level = None
def __str__(self):
return str(self.info)
class BinarySearchTree:
def __init__(self):
self.root = None
def create(self, val):
if self.root == None:
self.root = Node(val)
else:
current = self.root
while True:
if val < current.info:
if current.left:
current = current.left
else:
current.left = Node(val)
break
elif val > current.info:
if current.right:
current = current.right
else:
current.right = Node(val)
break
else:
break
答案 0 :(得分:1)