算法刷题

【编程】给定一个部门,变量出当前部门的所有父部门包含当前部门

给定一个部门,输出当前部门的所有父部门及其自己。如下图:分析:1:如果直接就是一级部门,直接返回;2:如果不是一级部门,就递归查询。同样需要注意去重代码:public class AllParentDepartment { public static void main(String[]&nb

给定一个部门,输出当前部门的所有父部门及其自己。如下图:

ee8f1c9ed3e8f87e341a797be2322f9d.png

分析:

1:如果直接就是一级部门,直接返回;

2:如果不是一级部门,就递归查询。同样需要注意去重

代码:

public class AllParentDepartment {

    public static void main(String[] args) {
        AllParentDepartment allDepartment = new AllParentDepartment();
        List<Department> list = allDepartment.initDepartment();
        Department d1 = new Department();
        d1.setParentId(7);
        d1.setId(10);
        d1.setName("高级Java");
        List<Department> myParentList = allDepartment.getMyAllParentDepartmentList(d1, list);
        myParentList.forEach(System.out::println);
    }

    private List<Department> getMyAllParentDepartmentList(Department d1, List<Department> list) {
        List<Department> result = new ArrayList<>();
        Integer parentId = d1.getParentId();
        result.add(d1);
        if (0 == parentId) {
            return result;
        }
        doMyAllParentDepartmentList(d1, list, result);
        return result;
    }

    private void doMyAllParentDepartmentList(Department d1, List<Department> list, List<Department> result) {
        Integer pare

原创不易,完成人机校验,阅读全文

相关推荐