当前位置: 代码迷 >> J2EE >> 可能小弟我要的是一个算法,递归
  详细解决方案

可能小弟我要的是一个算法,递归

热度:79   发布时间:2016-04-22 01:53:09.0
可能我要的是一个算法,递归?
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
  相关解决方案