📜  循环遍历树集 java (1)

📅  最后修改于: 2023-12-03 15:39:33.786000             🧑  作者: Mango

循环遍历树集 Java

树集是一种数据结构,它是由一组节点组成的集合,每个节点包含了父节点和子节点。在Java中,我们可以使用循环遍历的方式来遍历树集。

前序遍历

前序遍历是指先遍历根节点,然后依次遍历其左子树和右子树。以下是前序遍历的Java代码片段:

public void preOrder(TreeNode root) {
  if (root != null) {
    System.out.print(root.val + " ");
    preOrder(root.left);
    preOrder(root.right);
  }
}

其中,TreeNode表示树集中的结点,val表示结点的值,leftright表示左子树和右子树。

中序遍历

中序遍历是指先遍历左子树,然后遍历根节点,最后遍历右子树。以下是中序遍历的Java代码片段:

public void inOrder(TreeNode root) {
  if (root != null) {
    inOrder(root.left);
    System.out.print(root.val + " ");
    inOrder(root.right);
  }
}
后序遍历

后序遍历是指先遍历左子树,然后遍历右子树,最后遍历根节点。以下是后序遍历的Java代码片段:

public void postOrder(TreeNode root) {
  if (root != null) {
    postOrder(root.left);
    postOrder(root.right);
    System.out.print(root.val + " ");
  }
}
层序遍历

层序遍历是指从上到下,从左到右依次遍历树集中的每一个节点。以下是层序遍历的Java代码片段:

public void levelOrder(TreeNode root) {
  if (root == null) {
    return;
  }

  Queue<TreeNode> queue = new LinkedList<>();
  queue.offer(root);

  while (!queue.isEmpty()) {
    TreeNode node = queue.poll();
    System.out.print(node.val + " ");

    if (node.left != null) {
      queue.offer(node.left);
    }

    if (node.right != null) {
      queue.offer(node.right);
    }
  }
}

其中,Queue是Java中的队列数据结构,它可以用来辅助进行层序遍历。

以上就是循环遍历树集的四种方法,包括前序遍历、中序遍历、后序遍历和层序遍历。对于不同的场景,我们可以选择不同的方法对树集进行遍历。