如果詢問有關二叉樹中節點數的問題,它會非常容易,但要求我計算二叉樹中不同節點的數目,如下所示。 有兩個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。 –