📅  最后修改于: 2023-12-03 15:39:33.786000             🧑  作者: Mango
树集是一种数据结构,它是由一组节点组成的集合,每个节点包含了父节点和子节点。在Java中,我们可以使用循环遍历的方式来遍历树集。
前序遍历是指先遍历根节点,然后依次遍历其左子树和右子树。以下是前序遍历的Java代码片段:
public void preOrder(TreeNode root) {
if (root != null) {
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
}
其中,TreeNode
表示树集中的结点,val
表示结点的值,left
和right
表示左子树和右子树。
中序遍历是指先遍历左子树,然后遍历根节点,最后遍历右子树。以下是中序遍历的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中的队列数据结构,它可以用来辅助进行层序遍历。
以上就是循环遍历树集的四种方法,包括前序遍历、中序遍历、后序遍历和层序遍历。对于不同的场景,我们可以选择不同的方法对树集进行遍历。