| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.ArrayDeque; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 获取某一个MemberNode的所有上级节点 |
| | | * @param node MemberNode节点 |
| | | * @return MemberNode的List,按照从上到下的顺序排列 |
| | | */ |
| | | public List<MemberNode> getAllAncestors(MemberNode node) { |
| | | List<MemberNode> ancestorList = new ArrayList<>(); |
| | | getAllAncestorsHelper(node, ancestorList); |
| | | return ancestorList; |
| | | } |
| | | |
| | | /** |
| | | * 递归辅助方法,用于获取某一个MemberNode的所有上级节点 |
| | | * @param node 当前节点 |
| | | * @param ancestorList 存储上级节点的List |
| | | */ |
| | | private void getAllAncestorsHelper(MemberNode node, List<MemberNode> ancestorList) { |
| | | if (node == null || node.getRefererId() == null) { |
| | | return; |
| | | } |
| | | |
| | | MemberNode parent = getNode(node.getRefererId()); |
| | | ancestorList.add(parent); |
| | | |
| | | getAllAncestorsHelper(parent, ancestorList); |
| | | } |
| | | } |