从数据库查询出了部门表的全部列表,已经遍历组装成了树形结构,如何获取每个部门的全部子节点(包括子孙节点),也就是下面这种结构:
List<{deptId=1,nextId=2}>
List<{deptId=1,nextId=3}>
List<{deptId=1,nextId=4}>
List<{deptId=1,nextId=5}>
List<{deptId=1,nextId=6}>
List<{deptId=1,nextId=7}>
List<{deptId=1,nextId=8}>
List<{deptId=2,nextId=5}>
List<{deptId=2,nextId=6}>
List<{deptId=5,nextId=7}>
List<{deptId=5,nextId=8}>
求大佬给个算法点拨,谢谢
14点22补充
treeList是已经转换了的树形List
DeptLevel类是最终存储部门层级的对象
结果需要是:
XX科技---技术部
XX科技---开发部
XX科技---前端组
XX科技---JAVA组
XX科技---测试部
XX科技---财务部
技术部---开发部
技术部---前端组
技术部---JAVA组
。。。
我不知道你树形结构是啥样的,我这里用DeptTree做树形结构,你的那个{deptId,nextId}结构的数据,我用Dept对应。
我也不确定你对遍历的顺序是否有要求,按照深度优先算法写了个。