怎么用java递归查询树形结构

   2025-02-15 7290
核心提示:要使用Java递归查询树形结构,首先需要定义树的节点类,包含节点的值和子节点列表。然后,编写递归查询的方法。以下是一个示例代

要使用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表示树中不包含指定值的节点。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言