0

問題は簡単に見えます。同じツリーを使用し、正しい子ポインターをリスト内の次のポインターとして作成する必要があります。

したがって、私が使用したアルゴリズムは次のとおりです。

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)

うまくいかないように見えるので、どこが間違っているのか誰でも指摘できますか。

4

1 に答える 1

1

私が見た最初のバグは、あなたがheadprevの内部に代入してinorderいて、何らかの形でこれがとの以前の呼び出しの内部に影響headを与えることを望んでいるということです。しかし、そうではありません。previnorder

代わりに必要なことは、必要なinorder情報を返してから、それらを親呼び出し内に割り当てることです。

于 2012-07-01T14:47:58.650 に答える