美文网首页
逆向递归,给一个完整的树,找对应的部门树

逆向递归,给一个完整的树,找对应的部门树

作者: 川流不息attitude | 来源:发表于2022-11-07 15:49 被阅读0次

    递归找到树 找到部门 树

    构建一棵树 很简单,只要有parentId,很简单递归 就能构建好这棵树,今天来讲 怎么样 递归从树中 找到这个 对应 id 的树,比如传入 部门id 找到 这个部门树,逆向递归。

    /**
         * 获取用户部门树
         * @param treeList
         * @return
         */
        private Tree<Long> getUserDeptTree(List<Tree<Long>> treeList,Long deptId){
            if(!CollectionUtils.isEmpty(treeList)) {
                for (int i = 0; i < treeList.size(); i++) {
                    Tree<Long> tree = treeList.get(i);
                    List<Tree<Long>> children = tree.getChildren();
                    if (Objects.equals(tree.getId(), deptId) && !CollectionUtils.isEmpty(children)) {
                        return tree;
                    }
                    Tree<Long> buildUserDeptTree = getBuildUserDeptTree(children, deptId);
                    if (!CollectionUtils.isEmpty(buildUserDeptTree)) {
                        return buildUserDeptTree;
                    }
                }
    
            }
            return new Tree<>();
        }
        
    
        /**
         * 递归找到部门树
         * @param children
         * @param deptId
         * @return
         */
        private Tree<Long> getBuildUserDeptTree(List<Tree<Long>> children,Long deptId){
            Tree<Long> result =  new Tree<>();
            if(!CollectionUtils.isEmpty(children)){
                for (int i = 0; i < children.size(); i++) {
                    Tree<Long> tree = children.get(i);
                    List<Tree<Long>> childrenTree = tree.getChildren();
                    if (Objects.equals(tree.getId(), deptId) && !CollectionUtils.isEmpty(children)) {
                        return tree;
                    }
                    Tree<Long> userDeptTree = getBuildUserDeptTree(childrenTree, deptId);
                    if(!CollectionUtils.isEmpty(userDeptTree)){
                        return userDeptTree;
                    }
                }
            }
    
            return result;
        }
    

    相关文章

      网友评论

          本文标题:逆向递归,给一个完整的树,找对应的部门树

          本文链接:https://www.haomeiwen.com/subject/kbpwtdtx.html