KKSU
2024-05-11 9533bf3b42f2053de299959f0d8ac201c478657c
src/main/java/cc/mrbird/febs/common/tree/MatrixTree.java
@@ -4,6 +4,7 @@
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
/**
@@ -136,4 +137,31 @@
        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);
    }
}