日期:2014-05-19  浏览次数:20691 次

可能我要的是一个算法,递归?
0 - 1 - 3
  - 2 - 4
  - 5
  - 6 - 7
  - 8

看的懂么? 要求, 根据0 得到3,4,5,7,8
(数据库中:根据0可以得到1,2 根据1可以得到3 根据2可以得到4,5,6 根据6可以得到7,8)


------解决方案--------------------
不就是树形结构,寻找叶子节点么。。。。
------解决方案--------------------
好像真的是树形节点诶
------解决方案--------------------
就是递归,通过传入的节点ID先判断它是否还有子节点,如果没有则直接返回,如果有就递归寻找其子节点。
思路大概就这样:
Java code

    public void getChildNode(String id, List<String> childNodes){
        //通过id去获取他的子节点
        String[] childs = getChilds(id);
        //表明是根节点了。
        if(childs == null || childs.length == 0){
            childNodes.add(id);
        }else{
            for(String cid : childs){
                getChildNode(id, childNodes);
            }
        }
    }

------解决方案--------------------
是个树形结构
------解决方案--------------------
不就是要,除了根节点的,每个节点的最终的叶子节点么?
Java code

    public void getChildNode(String id, List<String> childNodes){
        //通过id去获取他的子节点
        String[] childs = getChilds(id);
        //表明是根节点了。
        if(childs == null || childs.length == 0){
            childNodes.add(id);
        }else{
            for(String cid : childs){
                getChildNode(id, childNodes);
            }
        }
    }

------解决方案--------------------
一种数据结构嘛。不用麻烦自己写算法。去google