阅读量:0
要使用Java递归查询树形结构,首先需要定义树的节点类,包含节点的值和子节点列表。然后,编写递归查询的方法。
以下是一个示例代码:
class TreeNode { int value; List<TreeNode> children; public TreeNode(int value) { this.value = value; this.children = new ArrayList<>(); } } class Tree { TreeNode root; public Tree(TreeNode root) { this.root = root; } // 递归查询树中是否包含指定值的节点 public boolean containsValue(TreeNode node, int value) { if (node.value == value) { return true; } for (TreeNode child : node.children) { if (containsValue(child, value)) { return true; } } return false; } } public class Main { public static void main(String[] args) { TreeNode node1 = new TreeNode(1); TreeNode node2 = new TreeNode(2); TreeNode node3 = new TreeNode(3); TreeNode node4 = new TreeNode(4); TreeNode node5 = new TreeNode(5); node1.children.add(node2); node1.children.add(node3); node2.children.add(node4); node3.children.add(node5); Tree tree = new Tree(node1); System.out.println(tree.containsValue(tree.root, 3)); // 输出:true System.out.println(tree.containsValue(tree.root, 6)); // 输出:false } }
在上面的示例中,首先定义了一个TreeNode
类,表示树的节点。Tree
类表示整个树结构,并包含了一个递归查询方法containsValue
,用于在树中查找是否包含指定值的节点。
在main
方法中,创建了一个包含多个节点的树,并进行了查询操作。输出结果为true
表示树中包含指定值的节点,输出结果为false
表示树中不包含指定值的节点。