java List 树形结构转为展开格式
时间: 2024-05-12 15:16:25 浏览: 116
可以使用递归实现,对于每一个节点,遍历其子节点,将子节点添加到该节点后面,并继续递归遍历子节点的子节点。具体实现可以参考以下代码:
```java
public class TreeNode {
private int id;
private String name;
private List<TreeNode> children;
// 省略getters和setters方法
}
public class TreeUtils {
public static List<TreeNode> flatten(List<TreeNode> nodes) {
List<TreeNode> result = new ArrayList<>();
for (TreeNode node : nodes) {
result.add(node);
if (node.getChildren() != null && node.getChildren().size() > 0) {
result.addAll(flatten(node.getChildren()));
}
}
return result;
}
}
```
上面的代码中,TreeNode表示树的节点,包含id、name和children等属性,其中children表示该节点的子节点列表。TreeUtils提供了一个flatten方法,用于将树形结构转换为展开格式。该方法使用递归实现,遍历每一个节点,将其添加到结果列表中,并继续递归遍历子节点的子节点。最后返回结果列表,即为展开格式的节点列表。
阅读全文