一道简单递归算法

import java.util.ArrayList;
import java.util.List;
public class Test {

static String output = "";
static List<City> list = new ArrayList<City>();

public static void main(String[] args) {
list.add(new City(1, "中国", 0, ""));
list.add(new City(2, "四川", 1, "中国"));
list.add(new City(3, "北京", 1, "中国"));
list.add(new City(4, "成都", 2, "四川"));
list.add(new City(5, "朝阳区", 3, "北京"));
City firstNode = (City)list.get(0);

System.out.println(visit(firstNode.ParentID));
}

// 递归算法
private static String visit(Integer ID) {
for (City node : list) {
if (node.ParentID == ID) {
// 这里是关键
output += "<node label='" + node.Name + "'>" + "\n";
visit(node.ID);
output += "</node>" + "\n";
}
}
return output;
}
}

输出结果如下:
<node label='中国'>
<node label='四川'>
<node label='成都'>
</node>
</node>
<node label='北京'>
<node label='朝阳区'>
</node>
</node>
</node>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值