概述
使用场景
通常用于树结构的遍历,比如节点+子节点列表的方式的数据结构。
递归方法的出入口
明确递归方法的出入口。
入口尽量简单,入口需要是根接口。
出口就是不满足判断条件的最底层的接口,比如无子节点的节点,在出口做业务逻辑处理。
示例
public void deviceTree(TreeNode node, List<String> conditions) {
if (node.getChildren() == null) {
return node;
}
handTreeChildren(node, conditions);
return node;
}
private void handTreeChildren(TreeNode node, List<String> conditions) {
List<TreeNode > treeChildren = node.getChildren();
if (CollectionUtils.isNotEmpty(treeChildren)) {
treeChildren.forEach(node -> handTreeChildren(node, conditions));
}
boolean isContain= conditions.contains(node.getId());
if (FLAG.equals(node .getType()) && isContain) {
node.setFlag(ONE);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100113.html