如果询问有关二叉树中节点数的问题,它会非常容易,但要求我计算二叉树中不同节点的数目,如下所示。 有两个12值! 二叉树 - 计数不同节点
二叉树algoritm节点数量是这样的:
struct Node {
string data;
struct Node *left;
struct Node *right;
};
int getNumberOfNodes(Node* node)
{
if (node != NULL)
return getNumberOfNodes(node->left) + 1 + getNumberOfNodes(node->right);
else
return 0;
}
但独特的价值观,实在是太辛苦-_-
您将需要一组记忆它遇到的所有数字。然后统计集合的大小,然后这是树中唯一的总数。 – Elye
如果您不想使用额外的O(n)内存,您可以从BST创建一个“max heap”,然后遍历其节点,并且每当根等于其子节点时总计数减1。 –