将BST转换为排序列表

时间:2012-07-01 14:06:14

标签: python algorithm data-structures tree

问题似乎很简单。 您必须使用相同的树并将右子指针作为列表中的下一个指针。

所以我使用的算法如下:

def inorder(node, prev, head):
        if(node == NULL):
            return;
        inorder(node.left, prev, head)

        node.right = prev
        if(!prev):
            head = node
        prev = node 

        inorder(node.right, prev, head)

任何人都可以指出我错在哪里,因为它似乎没有用。

1 个答案:

答案 0 :(得分:1)

我看到的第一个错误是您在head内分配previnorder,并希望以某种方式影响head和{{ 1}}之前调用prev。但事实并非如此。

您需要做的是让inorder返回您想要的信息,然后在父呼叫中分配它们。