填充树的所有节点的数据字段

时间:2012-04-14 18:37:27

标签: algorithm data-structures tree

  

二叉树的节点有两个指针,“左”和“右”,以及两个数据字段“leftcount”和“rightcount”。 'leftcount'指定节点左子树中的节点数,'rightcount'指定节点右子树中的节点数。编写算法来填充树的所有节点的数据字段。

我在接受采访时被问到这个问题。我想出了一个基于树的后序遍历的解决方案。有人可以指导我这个。

1 个答案:

答案 0 :(得分: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;
}