用java实现 递归查询归多级树形结构数据的代码
时间: 2024-05-09 15:19:21 浏览: 123
下面是一个示例代码,用Java实现递归查询多级树形结构数据:
```
public class TreeNode {
private int id;
private String name;
private List<TreeNode> children;
// constructors, getters and setters
// recursive method to search for a node with given id
public TreeNode findNodeById(int id) {
if (this.id == id) {
return this;
}
if (children != null) {
for (TreeNode child : children) {
TreeNode node = child.findNodeById(id);
if (node != null) {
return node;
}
}
}
return null;
}
// recursive method to print the tree structure
public void printTree(int level) {
String prefix = "";
for (int i = 0; i < level; i++) {
prefix += " ";
}
System.out.println(prefix + name);
if (children != null) {
for (TreeNode child : children) {
child.printTree(level + 1);
}
}
}
}
```
这里定义了一个`TreeNode`类,它表示树形结构中的一个节点,包括节点的id、name和children(子节点列表)属性。`findNodeById`方法使用递归的方式查找树中具有给定id的节点,如果找到了则返回该节点,否则返回null。`printTree`方法使用递归的方式打印整个树形结构,每个节点前面加上适当数量的空格,以表示节点在树中的深度。这些方法可以根据需要进行修改和扩展,以适应具体的应用场景。
阅读全文