【发布时间】:2020-10-26 11:15:41
【问题描述】:
我有一个随机“指针”列表
- "A,B,C,D,E,F"
它们属于N个不同的链表
- “A->C->D”、“B->E”、“F”
我可以从指针中获得的唯一信息是“孩子”知道“父母”,但反之则不然。
我目前将它们分类到各自的链表中的实现如下。
如果我能得到一些关于优化下面代码的建议或者我的方法是错误的,我将不胜感激。
for (Pointer i: listOfPointers) {
if (!i.hasParent())
// no parent, its a root node
rootNodes.add(i.getId());
else {
// parent -> child
parentChild.put(i.getParent().getId(),i.getId());
}
}
// iterate through the head/roots
for (String i : rootNodes) {
LinkedList<String> templist = new LinkedList<>();
LinkedList<Map<String,String>> temp = new LinkedList<>();
String tempnow = i;
//construct our linked list, start by the head and getting the child until we have nothing left
do{
if (templist.size() == 0)
System.out.println("Parent - " + tempnow);
else
System.out.println("Child - " + tempnow);
templist.add(tempnow);
if (parentChild.containsKey(tempnow))
tempnow = parentChild.get(tempnow);
else
break;
}while(true);
linkedListHashMap.put(i, templist);
}
【问题讨论】: