原题链接
思路分析:
我们可以将员工之间的关系抽象为一棵树,那么原题问的就是以
i
d
id
id 为根节点的子树的所有节点的和。
定义函数的功能为:返回以
i
d
id
id 为根节点的子树的所有节点的和。采用
D
F
S
DFS
DFS 便利便可求解。
C
o
d
e
:
Code:
Code:
/* // Definition for Employee. class Employee { public: int id; int importance; vector<int> subordinates; }; */ class Solution { public: int getImportance(vector<Employee*> employees, int id) { int ans = 0; for( auto C1 : employees ){ if( C1->id == id ){ ans += C1->importance; for( auto C2 : C1->subordinates ){ ans += getImportance(employees, C2); } } } return ans; } };