0
二叉樹的節點有兩個指針,'left'和'right',以及兩個數據字段'leftcount'和'rightcount'。 'leftcount'指定節點左側子樹中的節點數量,'rightcount'指定節點右側子樹中的節點數量。編寫一個算法來填充樹的所有節點的數據字段。填充樹的所有節點的數據字段
我在接受採訪時被問到這個問題。我想出了一個基於樹的後序遍歷的解決方案。有人可以請指導我這一點。
二叉樹的節點有兩個指針,'left'和'right',以及兩個數據字段'leftcount'和'rightcount'。 'leftcount'指定節點左側子樹中的節點數量,'rightcount'指定節點右側子樹中的節點數量。編寫一個算法來填充樹的所有節點的數據字段。填充樹的所有節點的數據字段
我在接受採訪時被問到這個問題。我想出了一個基於樹的後序遍歷的解決方案。有人可以請指導我這一點。
這應該工作(我相信):
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;
}
如果你已經有了一個解決方案,那麼什麼是你的SO觀衆質疑? – 2012-04-14 18:44:28
@OliCharlesworth:謝謝你的回覆。我有人問我是否可以用我提出的其他方式來做這個帖子。 – user1225752 2012-04-15 01:19:56