类函数返回无Python

时间:2016-06-13 14:17:00

标签: python binary-tree inorder

我正在用Python编写二叉树。我希望我的顺序遍历返回树值的数组。打印它们很好,但是数组永远不会让它回到变量我试图捕获它并且我的测试失败,并且不等于预期。

def inOrder(self, **kwargs):
        root = self.assignRoot(kwargs)
        arr = self.assignArr(kwargs)
        # recurse down or 'visit' node
        if root.left != None:
            self.inOrder(arr=arr, root=root.left)
        arr.append(root.value)
        if len(arr) == self.length:
            print('returning arr', arr)
            return arr
        if root.right != None:
            self.inOrder(arr=arr, root=root.right)

我的测试看起来像这样:

from btree import Btree
from btree import Node
def test_inOrder_traversal():
    bst = setUp()
    print(bst.root.value)
    arr = bst.inOrder()
    print('arr', arr)
    expected = [10, 15, 20, 25, 30]
    assert arr == expected

print语句还显示arr == None,因此无法从inOrder()

正确返回

编辑: 这解决了它。

def inOrder(self, **kwargs):
        root = self.assignRoot(kwargs)
        arr = self.assignArr(kwargs)
        # recurse down or 'visit' node
        if root.left != None:
            self.inOrder(arr=arr, root=root.left)
        arr.append(root.value)
        if root.right != None:
            self.inOrder(arr=arr, root=root.right)
        if len(arr) == self.length:
            print('returning arr', arr)
            return arr

0 个答案:

没有答案