0

二分木をトラバースするときに、現在のノードの上にあるノードを取得することは可能ですか?という質問を受けました。二重連結リストとして。

4

1 に答える 1

2

二重リンクとしてビルドする場合は、はい、「親」プロパティに移動します。抽象的な例:

struct node {
    struct node *parent; // << this is the parent, just access it
    struct node *rchild;
    struct node *lchild;
    int val;
}

それ以外の場合は、子ノードにアクセスするたびに前のノードをキャッシュする必要があります。

二重リンクリストは、バイナリツリーと同じではないことに注意してください(リストでは、各項目に 1 つの子があります)。

于 2012-05-05T09:51:57.407 に答える