我有一个Java bean类:
class Node{
int id, parentId;
String value;
List<Node> childs;
}
我如何才能在此层次结构中找到父节点,然后在父节点的子列表中插入一个子节点。间节点的关系被定义为:如果node1.id == node2.parentid
那么node2
将在子列表node1
。
这可以是第N级层次结构。
为了在该层次结构中找到一个节点,您必须实现一个遍历的方法。我建议使用递归方法,并采用广度优先或深度优先的搜索模式。找到正确的节点后,插入子节点。
例如:
public Node search(Node root, int searchId) {
if (root.id == searchId) {
return root;
} else {
for (Node child : root.childs) {
Node node = search(child, searchId);
if (node != null) {
return node;
}
}
}
return null;
}
public void insert(Node node) {
Node parent = search(root, node.parentId);
if (node != null) {
parent.childs.add(node);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句