0

二分木のノードには、「左」と「右」の2つのポインターと、「左カウント」と「右カウント」の2つのデータフィールドがあります。「leftcount」はノードの左側のサブツリーにあるノードの数を指定し、「rightcount」はノードの右側のサブツリーにあるノードの数を指定します。ツリーのすべてのノードのデータフィールドにデータを入力するアルゴリズムを記述します。

私はインタビューでこの質問をされました。私は、ツリーのポストオーダートラバーサルに基づいたソリューションを思いつきました。誰かがこれについて私を案内してくれませんか。

4

1 に答える 1

1

これはうまくいくはずです(私は信じています):

int populateCounters(Node* node) {
    if(node == NULL) return 0;
    node->leftCount = populateCounters(node->left);
    node->rightCount = populateCounters(node->right);
    return node->leftCount + node->rightCount + 1;
}
于 2012-04-14T18:54:35.163 に答える