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

avatar
作者
猴君
阅读量: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表示树中不包含指定值的节点。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!