有个算法题目没明白啥意思,帮忙分析下

int[][] deges = {{0,0,3,2},{1,2,0,1}};
int nodeCount = 4;
//Map<Integer,List<Integer>>为一个node
ArrayList<Map<Integer,List<Integer>>> order = new ArrayList<Map<Integer,List<Integer>>>();
//做为循环结束的判断标志
Map<Integer,Integer> nodes = new HashMap<Integer, Integer>();
for(int i = 0; i < nodeCount; i ++) {
nodes.put(0, deges[0][i]);
}
while(nodes.size() > 0) {
for(int i = 0; i < nodeCount; i ++) {
int pre = deges[0][i];
int suf = deges[1][i];
for(Map<Integer,List<Integer>> node : order) {
//node的前驱 等于 后继,建立newNode插入node之前,并从nodes中删除此点
if(node.containsKey(suf)) {
Map<Integer,List<Integer>> newNode = new HashMap<Integer,List<Integer>>();
List<Integer> newSuf = new ArrayList<Integer>();
newSuf.add(suf);
newNode.put(pre, newSuf);
int index = order.indexOf(node);
order.add(index, newNode);
}
//node的后继 等于 前驱,建立newNode插入node之后,并从nodes中删除此点
//node的前驱 等于 前驱,将suf加入node的后继列表中,并从nodes中删除此点
}
}
}
大概是这么个逻辑吧,没细写