0

二叉树的一个节点有两个指针“left”和“right”,以及两个数据字段“leftcount”和“rightcount”。“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 回答