javaで再帰的にすべての子ノードを問い合わせるにはどのように実装すればよいですか?
Javaでは、すべてのサブノードを探索するために再帰を使用できます。具体的には、次のようになります。
初期で、値と子ノードのリストを含むツリーノードクラスを作成します。
class TreeNode {
int value;
List<TreeNode> children;
public TreeNode(int value) {
this.value = value;
children = new ArrayList<>();
}
}
次に、再帰的なメソッドを作成して、すべての子ノードを走査します。
public void getAllChildren(TreeNode node) {
if (node == null) {
return;
}
// 遍历当前节点的所有子节点
for (TreeNode child : node.children) {
System.out.println(child.value);
getAllChildren(child); // 递归调用,遍历子节点的子节点
}
}
最後に、次のコードを使用してツリーを作成し、再帰的なメソッドを呼び出してすべてのサブノードを検索します。
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);
root.children.add(node2);
root.children.add(node3);
node2.children.add(node4);
node3.children.add(node5);
// 查询所有子节点
getAllChildren(root);
}
このようにして再帰的に木のすべてのサブノードを検索できます。