题目来源
- 华为机试:Directory 删除
题目描述
题目解析
分析例子1:
可以知道这是一颗树,需要对树进行删除操作。最后根目录不需要输出。
int main() {std::vector<std::vector<int>> counts {{8, 6}, {10, 8}, {6, 0}, {20, 8}, {2, 6}, {9, 6}, {10, 11}};std::map<int, std::set<int>> map;for(auto iter : counts){map[iter[1]].insert(iter[0]);}int delete_value = 8;std::vector<int> ans;std::queue<int> queue;queue.push(0);while (!queue.empty()){auto curr = queue.front(); queue.pop();if(curr == delete_value){continue;}ans.push_back(curr);auto child = map[curr];for(auto iter : child){if(iter != delete_value){queue.push(iter);}}}std::sort(ans.begin(), ans.end());for (int i = 1; i < ans.size(); ++i) {std::cout << ans[i] <<"\t";}}