一道简单递归算法

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>

你可能感兴趣的:(java,算法)