我不认为我正确地遍历它并且当它需要返回一个新列表时它返回空。我已经卡住了一段时间,仍然需要做所有其他的遍历。将为所需的输出提供单元测试,但我的单元测试可能是错误的。
ball_2
答案 0 :(得分:6)
您的实施中存在两个问题:
temp = [None]
上述语句创建一个包含None
项目的列表:
x = len(temp) # x value will be 1
第二个问题是你的方法附加逻辑;你返回值而不是附加它们。
以下是基于您的代码的实现:
def inorder(self):
result = []
if self.__left:
result += self.__left.inorder()
result.append(self.__value)
if self.__right:
result += self.__right.inorder()
return result
答案 1 :(得分:0)
如果存在,有序遍历将需要下降到两个子树中,并访问其间的根;您的代码在遍历子树之后返回,跳过其他子树和根。