2014-09-02 57 views
0

我試圖製作這個二叉搜索樹並且正在定義它的遞歸獲取函數。但不管我做什麼,它總是返回None。我只是一個新手... 因此,如果解決方案是有意義的或什麼的......但請任何人都可以告訴我爲什麼它沒有返回任何值...?總是返回一個沒有值的值

def get(self,key): 
    if self.root: 
     res = self._get(key,self.root) 
     if res: 
      return res.payload 
     else: 
      return None 
    else: 
     return None 

def _get(self,key,currentnode): 
    if not currentnode: 
     return None 
    elif currentnode.key==key: 
     return currentnode 
    elif key<currentnode.key: 
     self._get(key,currentnode.leftchild) 
    else: 
     self._get(key,currentnode.rightchild) 

我使用的鍵爲比較參數每個節點的字典...

回答

1

的以下行:

elif key<currentnode.key: 
    self._get(key,currentnode.leftchild) 
else: 
    self._get(key,currentnode.rightchild) 

有:

elif key<currentnode.key: 
    return self._get(key,currentnode.leftchild) 
else: 
    return self._get(key,currentnode.rightchild) 
+0

所以答案有點太明顯,就像一個魅力... thnku .. :) – 2014-09-02 04:47:20