for循环创建树类结构

package com.zhlc.tree;

import java.util.ArrayList;
import java.util.List;

/**
* author:dwj <br>
* desc: <br>
* date: 2015-12-1 上午10:29:47<br>
*/
public class Tree {
private int id;
private String name;
private int parentId;
private List<Tree> childrens;
public Tree(int id,String name,int parentId){
this.id = id;
this.name = name;
this.parentId = parentId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用递归实现循环结构的list。 例如,假设我们有以下类: ``` public class TreeNode { private String name; private List<TreeNode> children; public TreeNode(String name) { this.name = name; this.children = new ArrayList<>(); } public String getName() { return name; } public List<TreeNode> getChildren() { return children; } public void addChild(TreeNode child) { children.add(child); } public void removeChild(TreeNode child) { children.remove(child); } } ``` 这个类表示一个树节点,其中包含一个名字和一个子节点列表。 现在,我们可以使用递归函数来遍历这个树结构,并生成一个列表。例如,以下是一个将树转换为列表的方法: ``` public List<String> flattenTree(TreeNode node) { List<String> result = new ArrayList<>(); flattenTreeHelper(node, result); return result; } private void flattenTreeHelper(TreeNode node, List<String> result) { result.add(node.getName()); for (TreeNode child : node.getChildren()) { flattenTreeHelper(child, result); } } ``` 这个方法首先创建一个空列表,然后使用递归函数 `flattenTreeHelper` 遍历树结构,并将每个节点的名称添加到列表中。 例如,假设我们有以下树结构: ``` A ├── B │ ├── C │ └── D └── E ├── F └── G ``` 我们可以使用以下代码将其转换为列表: ``` TreeNode root = new TreeNode("A"); TreeNode b = new TreeNode("B"); TreeNode c = new TreeNode("C"); TreeNode d = new TreeNode("D"); TreeNode e = new TreeNode("E"); TreeNode f = new TreeNode("F"); TreeNode g = new TreeNode("G"); root.addChild(b); b.addChild(c); b.addChild(d); root.addChild(e); e.addChild(f); e.addChild(g); List<String> flattened = flattenTree(root); System.out.println(flattened); ``` 这将输出以下内容: ``` [A, B, C, D, E, F, G] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值