2012-08-31 83 views
0

你將如何實現一個函數,該函數返回樹中給定元素之前找到的葉子數量?假設你從左到右閱讀樹?如何統計樹中給定節點之前的葉子?

我發現了做它,但它不是很直接,並使用異常機制,我認爲可能有一個優雅的方式來做到這一點?

+1

可以發表一些例子嗎? 「在給定元素之前找到」是什麼意思?重複是可能的? – barak1412

回答

0

也許你可以只是dfs樹,計算葉子,將它保存到每個節點。像

int count; 

void dfs(int x){ 
    dfs(x->left); 
    leafBefore[x] = count; 
    if (x is leaf) count += 1; 
    dfs(x->right); 
} 

count = 0; 
dfs(root); 
相關問題