下面是使用ArrayDeque和LinkedList作为层序遍历的队列的比较和代码示例:
import java.util.ArrayDeque;
import java.util.Queue;
public class LevelOrderTraversal {
public static void levelOrderTraversal(TreeNode root) {
if (root == null) {
return;
}
Queue queue = new ArrayDeque<>();
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);
}
}
}
}
import java.util.LinkedList;
import java.util.Queue;
public class LevelOrderTraversal {
public static void levelOrderTraversal(TreeNode root) {
if (root == null) {
return;
}
Queue 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);
}
}
}
}
无论使用ArrayDeque还是LinkedList作为层序遍历的队列,代码的实现方式是相同的。只需根据实际需求选择使用ArrayDeque或LinkedList作为队列即可。