首页 > 解决方案 > 二叉树的查找方法不返回任何内容

问题描述

我有一棵二叉树,想在其中搜索元素。但由于某种原因,我没有得到任何输出,也没有错误。也尝试过调试,但代码始终执行到最后。

def find(self, i):
   if self.__head is None:
       return -1
   else:
       return self.__find(self.__head, i)

def __find(self, element, i):
    if element is not None:
        if i == element.value():
            return 1
        elif i < element.value():
            self.__find(element.getLeft(), i)
        else:
            self.__find(element.getRight(), i)
    else:
        return -1

元素的代码如下:

class BElement:
def __init__(self, i, v):
    self.__id = i
    self.__value = v
    self.__left = None
    self.__right = None

def id(self):
    return self.__id

def value(self):
    return self.__value

def getLeft(self):
    return self.__left

def setLeft(self, l):
    self.__left = l

def getRight(self):
    return self.__right

def setRight(self, r):
    self.__right = r

def __str__(self):
    s = "{"
    if self.__left is not None:
        s = s + str(self.__left)
    s = s + str(self.__id) + ":" + str(self.__value)
    if self.__right is not None:
        s = s + str(self.__right)
    s = s + "}"
    return s

标签: pythonbinary-treebinary-search-tree

解决方案


删除值后的括号(),左右它们不是方法。


推荐阅读