如何正确编写以下递归python方法?

时间:2015-03-06 12:04:34

标签: python recursion methods

我是一名编程初学者,希望提高自己的技能。所以我决定实施一些算法;即我实现了一个代表二叉搜索树的类BTree(object)。我努力使用递归方法。我试图编写一个方法minEl(self),它应该返回树的min元素,但每次调用该方法时,都会发生以下错误:

minEl()需要1个位置参数,但是给出了2个。

我很感激你的帮助。

这是我的代码:

class BTree(object):
'Modelliert einen binären Suchbaum mit mehreren nützlichen Methoden'

  def __init__ (self, key, ltree = None, rtree = None, val = None, ):
    self.ltree = ltree
    self.rtree = rtree
    self.key   = key
    self.val   = val

  def minEl(self):
    if self.ltree == None:
      return self.key
    else:
      return self.minEl(self.ltree)

1 个答案:

答案 0 :(得分:3)

self参数是您调用方法的对象(点之前的对象)。

我想:

self.ltree.minEl()

是你想要的而不是self.minEl(self.ltree)。