树的查询(只显示第三级节点有符合条件的节点)
采用分步加载方式,进行过滤的树
一次加载,查询的树。
private List<TreeNode> ridRedundanceTreeNode(TreeNode root) {List<TreeNode> children = root.getChildren();if (children.size() > 0 && root.getData().toString().contains("level=lv2"))return children;for (Iterator<TreeNode> ite = children.iterator(); ite.hasNext();) {TreeNode node = ite.next();if (ridRedundanceTreeNode(node).size() == 0) {ite.remove();}}return children;}刚开始的时候,我还以为这个树的完整过滤需要很牛逼的算法,因为在删除父节点需要先遍历子节点,然后回溯。没想到 递归 刚好合适!?