java递归查询树形结构带上父节点
时间: 2023-11-18 12:57:22 浏览: 233
Java递归查询树形结构带上父节点的方法有多种实现方式,以下是其中一种实现方法:
1.定义一个方法,传入当前节点和父节点的ID,返回一个包含当前节点及其所有父节点的列表。
2.在方法中,首先判断当前节点是否为根节点,如果是,则直接将其加入列表并返回。
3.如果不是根节点,则通过当前节点的父节点ID查询父节点,并将其加入列表中。
4.然后递归调用该方法,传入父节点和父节点的ID,将返回的列表加入当前列表中。
5.最后返回当前列表。
代码实现如下(使用Map实现树形结构):
```java
public List<Map<String, Object>> getNodeWithParents(Map<String, Object> node, String parentId) {
List<Map<String, Object>> result = new ArrayList<>();
if (node.get("id").equals(parentId)) {
result.add(node);
return result;
}
Map<String, Object> parent = getParentNode(node, parentId);
result.addAll(getNodeWithParents(parent, parentId));
result.add(node);
return result;
}
private Map<String, Object> getParentNode(Map<String, Object> node, String parentId) {
// 通过parentId查询父节点
// ...
return parentNode;
}
```
相关问题:
阅读全文