java将递归转list
时间: 2023-11-19 17:10:27 浏览: 63
请问您是要将一个递归结构转换成一个列表吗?如果是的话,可以按照下面的步骤进行操作:
1. 定义一个类来表示递归结构。这个类应该有一个属性来表示当前节点的值,以及一个列表来存储子节点。
```
class TreeNode {
int val;
List<TreeNode> children;
TreeNode(int val) {
this.val = val;
this.children = new ArrayList<>();
}
}
```
2. 编写一个递归函数来遍历树,将节点的值添加到列表中。
```
public List<Integer> flatten(TreeNode root) {
List<Integer> result = new ArrayList<>();
if (root == null) {
return result;
}
result.add(root.val);
for (TreeNode child : root.children) {
result.addAll(flatten(child));
}
return result;
}
```
3. 调用这个函数来将递归结构转换成一个列表。
```
TreeNode root = new TreeNode(1);
TreeNode node1 = new TreeNode(2);
TreeNode node2 = new TreeNode(3);
TreeNode node3 = new TreeNode(4);
root.children.add(node1);
root.children.add(node2);
node2.children.add(node3);
List<Integer> result = flatten(root);
System.out.println(result); // [1, 2, 3, 4]
```
这样就可以将一个递归结构转换成一个列表了。
阅读全文