递归遍历固定深度的树状数据结构
kotlin伪代码
/**
* 主要是通过参数num控制深度遍历算法的深度 -- 基与二叉树深度遍历
*
* rootNode: 代表父节点
* num: 代表筛选的层数
* allNodeList: 用来存储迭代的数据
* 返回list集合
*/
fun getNodes(rootNode: String, num: Int, allNodeList: ArrayList<Node>): ArrayList<Node> {
val list = findByparentNode(rootNode)//获取父节点的全部子节点
val temp = num.dec() // 相当于java的num--,递归一次就减一
if (list.size > 0) {
for(Node aNode : list) {//for-each循环
allNodeList.add(aNode)
//num控制树状结构数据的深度
if (num > 1) //这里控制着筛选的深度
//递归
getNodes(aNode, temp, occurrenceList)
}
}
return allNodeList
}