690. 員工的重要性
//1.根據(jù)傳入的id找對應的員工
public static Employee findEmployeeById(List<Employee> employees,int id){
for(int i=0;i<employees.size();i++){
if(id==employees.get(i).id)
return employees.get(i);
}
return null;
}
//2.開始編寫
public static void getImportance(List<Employee> employees, int id) {
Employee employee=findEmployeeById(employees,id); //找到初始id
res+=employee.importance;
for(int i=0;i<employee.subordinates.size();i++){
int tempid=employee.subordinates.get(i);
getImportance(employees,tempid);
}
}
錯誤解法:
public void getImportance(List<Employee> employees, int id,int res) {
Employee employee=findEmployeeById(employees,id); //找到初始id
res+=employee.importance;
for(int i=0;i<employee.subordinates.size();i++){
int tempid=employee.subordinates.get(i);
getImportance(employees,tempid,res);
}
}
將res作為參數(shù)傳入蔗候,錯誤棕叫,res相當于形參,所有的改變不會影響外面的值
這里說明一下這種寫法,需要設置一個全局變量res=0才可以咙好。不可以將res作為函數(shù)參數(shù)傳進去渡蜻,傳進去之后所有的對于res的操作都在內部操作辑莫,對于外面的res不會有任何修改学歧。