java中树形结构递归
时间: 2025-04-20 11:01:11 浏览: 14
### Java 中使用递归实现树形结构
在 Java 中构建树形结构通常涉及定义节点类来表示树中的各个元素。对于递归实现,核心在于通过遍历列表并查找子节点的方式逐步建立父子关系。
#### 定义节点类
为了创建树形结构,首先需要定义一个 `TreeNode` 类,该类包含 ID、名称以及存储子节点的集合:
```java
class TreeNode {
private Long id;
private String name;
private List<TreeNode> children;
public TreeNode(Long id, String name) {
this.id = id;
this.name = name;
this.children = new ArrayList<>();
}
// Getters and Setters...
}
```
#### 构建树的方法
接下来是一个用于构建树的方法,此方法接收所有节点组成的列表作为输入参数,并返回根节点构成的列表:
```java
public static List<TreeNode> buildTree(List<TreeNode> nodes) {
Map<Long, TreeNode> nodeMap = nodes.stream()
.collect(Collectors.toMap(TreeNode::getId, Function.identity()));
List<TreeNode> roots = new LinkedList<>();
for (TreeNode node : nodes) {
Long parentId = node.getParentId();
if (parentId == null || !nodeMap.containsKey(parentId)) {
roots.add(node);
} else {
nodeMap.get(parentId).getChildren().add(node);
}
}
return roots;
}
```
上述代码片段展示了如何利用流操作和映射表快速定位父级节点并将当前节点加入其下[^1]。
这种方法不仅简化了逻辑而且提高了性能,在处理大规模数据集时尤为有效。当调用 `buildTree()` 方法后,会得到由顶层(无上级)节点组成的结果列表,每个顶级节点都包含了完整的后代层次信息。
阅读全文
相关推荐














