@Data
public class ResponseAreaItem {
private int id;
private int key;
private String area_name;
private String area_code;
private int level_id;
private String description;
private int p_id;
private String create_time;
private String update_time;
private List<ZeusResponseAreaItem> children;
}
public class AreaTreeTraversal {
public static List<ZeusResponseAreaItem> traverseTree(ResponseAreaItem root) {
List<ZeusResponseAreaItem> allNodes = new ArrayList<>();
traverseNode(root, allNodes);
return allNodes;
}
private static void traverseNode(ResponseAreaItem node, List<ZeusResponseAreaItem> allNodes) {
if (node != null) {
allNodes.add(node);
List<ZeusResponseAreaItem> children = node.getChildren();
if(!CollectionUtils.isEmpty(children)){
for (ResponseAreaItem child : children) {
traverseNode(child, allNodes);
}
}
}
}
}