// 定义一个节点类,每个节点包含一个值和一个子节点列表
class Node {
int value;
List<Node> children;
public Node(int value) {
this.value = value;
this.children = new ArrayList<>();
}
// 添加子节点的方法
public void addChild(Node child) {
this.children.add(child);
}
}
public class RecursiveTraversal {
// 递归方法,用于查询所有子节点并打印它们的值
public static void getAllChildren(Node node, List<Integer> result) {
// 将当前节点的值添加到结果列表中
result.add(node.value);
// 遍历当前节点的所有子节点,并对每个子节点递归调用此方法
for (Node child : node.children) {
getAllChildren(child, result);
}
}
public static void main(String[] args) {
// 创建一些节点
Node root = new Node(1);
Node child1 = new Node(2);
Node child2 = new Node(3);
Node child3 = new Node(4);
Node child4 = new Node(5);
// 构建树结构
root.addChild(child1);
root.addChild(child2);
child1.addChild(child3);
child2.addChild(child4);
// 创建一个列表来存储所有子节点的值
List<Integer> allChildrenValues = new ArrayList<>();
// 调用递归方法获取所有子节点的值
getAllChildren(root, allChildrenValues);
// 打印所有子节点的值
System.out.println(allChildrenValues);
}
}
Node 类:定义了一个节点类,每个节点包含一个整数值 value
和一个子节点列表 children
。构造函数初始化节点的值,并创建一个空的子节点列表。addChild
方法用于向当前节点添加子节点。
getAllChildren 方法:这是一个递归方法,接收一个节点 node
和一个结果列表 result
。它首先将当前节点的值添加到结果列表中,然后遍历当前节点的所有子节点,并对每个子节点递归调用 getAllChildren
方法。
main 方法:在 main
方法中,我们创建了一些节点并构建了一棵树结构。接着,我们调用 getAllChildren
方法来获取所有子节点的值,并将这些值存储在一个列表中。最后,我们打印出这个列表的内容。
这段代码展示了如何使用递归来遍历树结构中的所有子节点,并将它们的值收集到一个列表中。
上一篇:java获取本月第一天日期
下一篇:java调用第三方接口
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站