class Node:
def __init__(self,data):
self.data=data
self.left=self.right=None
def insert(self,data):
if self.data:
if data<self.data:
if self.left is None:
self.left=Node(data)
else:
self.left.insert(data)
elif data>self.data:
if self.right is None:
self.right=Node(data)
else:
self.right.insert(data)
def level(self,data,l):
if data<self.data:
if self.left is None:
return -1
self.left.level(data,l+1)
elif data>self.data:
if self.right is None:
return -1
self.right.level(data,l+1)
elif self.data==data:
print(l)
l = [8,7,6,5,10]根=节点(l.pop(0))对于我在l中:root.insert(i)预(根)l = root.level(10,1)打印(l)预期输出为2但返回None
class Node: def __init__(self,data): self.data=data self.left=self.right=None def insert(self,data): if self.data: if data<self.data: if self.left is None: self.left=Node(data) else: self.left.insert(data) elif data>self.data: if self.right is None: self.right=Node(data) else: self.right.insert(data) def level(self,data,l): if data == self.data: level = l else: if data<self.data: if self.left is None: return -1 level = self.left.level(data,l+1) elif data>self.data: if self.right is None: return -1 level = self.right.level(data,l+1) return level l=[8,7,6,5,10] root=Node(l.pop(0)) for i in l: root.insert(i) print(root.level(8,1)) print(root.level(7,1)) print(root.level(6,1)) print(root.level(5,1)) print(root.level(10,1))
您的函数应该返回一些东西,还需要更新级别。