二叉树的节点有两个指针,“左”和“右”,以及两个数据字段“leftcount”和“rightcount”。 'leftcount'指定节点左子树中的节点数,'rightcount'指定节点右子树中的节点数。编写算法来填充树的所有节点的数据字段。
我在接受采访时被问到这个问题。我想出了一个基于树的后序遍历的解决方案。有人可以指导我这个。
答案 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;
}