近期工作上遇到了这样一个需求,一张表用来存储树形结构的父节点和叶子节点,大体是这样定义的。
Table定义如下:
id | groupid | nodeid | other |
1 | A001 | A0001 | ~~ |
2 | B001 | B0001 | ~~ |
3 | A0001 | A00001 | ~~ |
4 | C001 | C0001 | ~~ |
5 | C001 | C0002 | ~~ |
需求很简单:这张表表示的是一个数结构,其中groupid代表的是父节点,而nodeid代表的是相应的子节点,我们想要的是整个树结构的全部叶子节点。当然涉及到多棵树,就组成了森林结构,也就是查找指定森林结构的所有叶子节点。
思路也很Easy:遍历每一颗树,利用写好的递归查询函数去查询每棵树的最终叶子结点,然后把它们保存到静态list中。
详细代码如下: 继续阅读