java 集合树深度优先排序
时间: 2023-10-14 19:12:38 浏览: 38
Java中的集合框架中并没有直接提供树的深度优先排序功能,但我们可以通过递归实现。以下是一个示例代码:
```java
import java.util.*;
public class TreeDFS {
static class TreeNode {
int val;
List<TreeNode> children;
public TreeNode(int val) {
this.val = val;
this.children = new ArrayList<>();
}
public void addChild(TreeNode child) {
children.add(child);
}
}
public static List<Integer> dfs(TreeNode root) {
List<Integer> result = new ArrayList<>();
if (root != null) {
result.add(root.val);
for (TreeNode child : root.children) {
result.addAll(dfs(child));
}
}
return result;
}
public static void main(String[] args) {
// 构建一个树
TreeNode root = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
root.addChild(node2);
root.addChild(node3);
node2.addChild(node4);
node2.addChild(node5);
node3.addChild(node6);
// 深度优先遍历
List<Integer> result = dfs(root);
System.out.println(result);
}
}
```
输出结果为:`[1, 2, 4, 5, 3, 6]`,表示树的深度优先遍历结果。