java 将树形list取出平铺list
时间: 2024-07-01 07:00:24 浏览: 91
在Java中,将树形数据结构(如List或数组形式的树)转换为平铺的列表,通常涉及到遍历过程,比如使用递归或栈来扁平化。这里提供一种基于递归的方法:
假设你有一个Node类,代表树节点,每个节点可能包含一个子节点列表(也可能是一个空的list),可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
class Node {
List<Node> children; // 假设这是你的子节点列表
// 其他属性和方法...
}
public class FlattenTreeToList {
public static List<Node> flatten(Node root) {
if (root == null) {
return new ArrayList<>();
}
// 使用ArrayList来存储结果
List<Node> result = new ArrayList<>();
// 遍历并添加当前节点,然后递归处理子节点
result.add(root);
for (Node child : root.children) {
result.addAll(flatten(child));
}
return result;
}
}
```
使用这个`flatten`方法,你可以传入树的根节点,它会返回一个包含所有叶子节点的新列表,平铺了原始的树形结构。
阅读全文