java 得到一个父节点,递归找出所有子节点,装进一个List中

时间: 2024-05-12 09:19:22 浏览: 16
以下是Java代码示例: ```java public class TreeNode { private int id; private List<TreeNode> children; // 构造函数 public TreeNode(int id) { this.id = id; this.children = new ArrayList<>(); } // 添加子节点 public void addChild(TreeNode child) { this.children.add(child); } // 递归找出所有子节点 public List<TreeNode> getAllChildren() { List<TreeNode> allChildren = new ArrayList<>(); for (TreeNode child : children) { allChildren.add(child); allChildren.addAll(child.getAllChildren()); } return allChildren; } } ``` 在上面的代码中,我们定义了一个树节点类 `TreeNode`,每个节点包含一个节点 ID 和一个子节点列表 `children`。 我们使用 `addChild` 方法向节点中添加子节点。然后,我们使用 `getAllChildren` 方法递归地找出所有子节点,并将它们装进一个 `List` 中返回。 使用示例: ```java // 创建一个树结构 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.addChild(node2); root.addChild(node3); node2.addChild(node4); node2.addChild(node5); // 找出根节点的所有子节点 List<TreeNode> allChildren = root.getAllChildren(); for (TreeNode child : allChildren) { System.out.println(child.getId()); } ``` 以上代码将输出: ``` 2 4 5 3 ```

相关推荐

最新推荐

recommend-type

sql server递归子节点、父节点sql查询表结构的实例

本文通过实例给大家介绍了sql server递归子节点、父节点sql查询表结构的实例解析,非常不错,具有参考借鉴价值,需要的的朋友参考下
recommend-type

Oracle通过递归查询父子兄弟节点方法示例

主要给大家介绍了关于Oracle如何通过递归查询父子兄弟节点的相关资料,递归查询对各位程序员来说应该都不陌生,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
recommend-type

C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法

主要介绍了C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法,涉及C++二叉树的定义、遍历、统计相关操作技巧,需要的朋友可以参考下
recommend-type

python json 递归打印所有json子节点信息的例子

今天小编就为大家分享一篇python json 递归打印所有json子节点信息的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

java递归实现复制一个文件夹下所有文件功能

主要介绍了java递归实现复制一个文件夹下所有文件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB图像处理算法宝典:从理论到实战

![MATLAB图像处理算法宝典:从理论到实战](https://img-blog.csdnimg.cn/20200717112736401.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1emhhbzk5MDE=,size_16,color_FFFFFF,t_70) # 1. MATLAB图像处理基础理论 MATLAB图像处理是一种利用MATLAB编程语言进行图像处理的强大工具。它提供了丰富的函数和工具箱,用于图像获取、增强、分
recommend-type

matlab中1/x的非线性规划

在MATLAB中,可以使用非线性规划函数(`fmincon`)来优化一个包含1/x的非线性目标函数。下面是一个简单的例子: ```matlab % 定义目标函数 fun = @(x) 1/x; % 定义约束函数(这里没有约束) nonlcon = []; % 定义初始点 x0 = 1; % 定义优化选项 options = optimoptions('fmincon', 'Display', 'iter'); % 进行非线性规划 [x, fval] = fmincon(fun, x0, [], [], [], [], [], [], nonlcon, options); ``` 在
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。