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)

解决方案 »

  1.   

    就是递归,通过传入的节点ID先判断它是否还有子节点,如果没有则直接返回,如果有就递归寻找其子节点。
    思路大概就这样:    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);
         }
         }
        }
      

  2.   

    不就是要,除了根节点的,每个节点的最终的叶子节点么?    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);
                }
            }
        }+1
      

  3.   

    一种数据结构嘛。不用麻烦自己写算法。去google