Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java递归查询所有子节点

作者:此甥孓狠善良   发布日期:2025-04-17   浏览:119

// 定义一个节点类,每个节点包含一个值和一个子节点列表
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);
    }
}

解释说明:

  1. Node 类:定义了一个节点类,每个节点包含一个整数值 value 和一个子节点列表 children。构造函数初始化节点的值,并创建一个空的子节点列表。addChild 方法用于向当前节点添加子节点。

  2. getAllChildren 方法:这是一个递归方法,接收一个节点 node 和一个结果列表 result。它首先将当前节点的值添加到结果列表中,然后遍历当前节点的所有子节点,并对每个子节点递归调用 getAllChildren 方法。

  3. main 方法:在 main 方法中,我们创建了一些节点并构建了一棵树结构。接着,我们调用 getAllChildren 方法来获取所有子节点的值,并将这些值存储在一个列表中。最后,我们打印出这个列表的内容。

这段代码展示了如何使用递归来遍历树结构中的所有子节点,并将它们的值收集到一个列表中。

上一篇:java获取本月第一天日期

下一篇:java调用第三方接口

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站