在 Python 中使用中序遍历(递归)打印二叉搜索树节点

Printing binary search tree nodes using inorder traversal (recursion) in Python

我正在尝试在二叉搜索树上实现一个简单的中序遍历方法。

            10
          /    \
         5      15
          \
           8

我想打印整棵树,但我只打印了前 3 个节点。我的问题是:

-- 如何修复我的 'inorder' 打印方法? 'insert' 方法工作正常。 -- inorder 方法中的基本条件是什么?当所有节点都打印完后,它如何知道停止?

 class Tree:
  def __init__(self, value):
    self.node = value
    self.leftChild = None
    self.rightChild  = None

  def insert(self, value):
    if self.node is None:
        self.node = value
        return True
    if self.node is not value:
        if self.node > value:
            if self.leftChild  is None:
                self.leftChild  = Tree(value)
            else:
                return self.leftChild.insert(value)
        if self.node < value:
            if self.rightChild  is None:
                self.rightChild  = Tree(value)
            else:
                 return self.rightChild.insert(value)
    else:
        return False

  def inorder(self):
      if self:  
          if self.leftChild:
              return self.leftChild.inorder()
          print self.node
          if self.rightChild:
              return self.rightChild.inorder()


tree = Tree(10)
tree.insert(5)
tree.insert(8)
tree.insert(15)
tree.inorder()


> 5
  8
  10
return self.leftChild.inorder() 中的

return 在可以处理 selfself.rightChild 之前结束对 inorder 的调用。删除 returns,该方法不会 return 任何东西。