Python 类BST,查找值

Python 类BST,查找值,python,algorithm,Python,Algorithm,我的BST有问题;我编写了一个表示BST的类,但无论数字是否在BST中,我都无法返回True或False。知道为什么它总是返回None?只有当我问到根的问题时,它才给了我正确的答案 class DrzewoBST: def __init__(self, value = None): self.val = value self.left = None self.right = None def __str__(self):

我的BST有问题;我编写了一个表示BST的类,但无论数字是否在BST中,我都无法返回
True
False
。知道为什么它总是返回
None
?只有当我问到根的问题时,它才给了我正确的答案

class DrzewoBST:
    def __init__(self, value = None):
        self.val = value
        self.left = None
        self.right = None

    def __str__(self):
        return "[%s, %s, %s]" % (self.left, str(self.val), self.right)

    def wstawianie(self, wartosc):
        if self is None:
            self = DrzewoBST(wartosc)
        if wartosc < self.val:
            if self.left is None:
                self.left = DrzewoBST(wartosc)
            else:
                self.left.wstawianie(wartosc)
        elif wartosc > self.val:
            if self.right is None:
                self.right = DrzewoBST(wartosc)
            else:
                self.right.wstawianie(wartosc)

    def wyszukiwanie(self, liczba):
        print(self.val)
        if self is None:
            return False
        if int(self.val) == liczba:
            return True
        if liczba < self.val:
            self.left.wyszukiwanie(liczba)
        else:
            self.right.wyszukiwanie(liczba)

     t = DrzewoBST(2)
     t.wstawianie(3)
     t.wstawianie(3)
     print(t.wyszukiwanie(3))
class-DrzewoBST:
def u u init u u;(self,value=None):
self.val=值
self.left=无
self.right=无
定义(自我):
返回“[%s,%s,%s]”%(self.left、str(self.val)、self.right)
def wstawianie(自身,瓦托斯克):
如果self为None:
self=DrzewoBST(瓦托斯)
如果wartoscself.val:
如果self.right为无:
self.right=DrzewoBST(瓦托斯)
其他:
self.right.wstawianie(瓦托斯)
def wyszukiwanie(自我,利兹巴):
打印(self.val)
如果self为None:
返回错误
如果int(self.val)=liczba:
返回真值
如果liczba

只有当我尝试
t.wyszukiwanie(2)
(这给了我
True
)时,这才起作用,但当我尝试
t.wyszukiwanie(3)
时,我得到了
False
;我应该得到
True
,因为3在BST中。

因为你的
wyszukiwanie
没有返回任何东西。添加
return
语句

if liczba < self.val:
    return self.left.wyszukiwanie(liczba)
else:
    return self.right.wyszukiwanie(liczba)
如果liczba