代码如下:
import java.util.*;
class Node
{
int value;
Node left, right;
public Node(int value)
{
this.value = value;
left = right = null;
}
}
class BinaryTree
{
Node root;
public BinaryTree()
{
root = null;
}
void printLevelOrder()
{
if (root == null)
return;
Queue<Node> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty())
{
int levelSize = queue.size();
for (int i = 0; i < levelSize; i++)
{
Node node = queue.poll();
System.out.print(node.value + " ");
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
}
System.out.println();
}
}
}
public static void main(String[] args)
{
BinaryTree tree = new BinaryTree();
tree.root = new Node(4);
tree.root.left = new Node(2);
tree.root.right = new Node(6);
tree.root.left.left = new Node(1);
tree.root.left.right = new Node(3);
tree.root.right.left = new Node(5);
tree.root.right.right = new Node(7);
System.out.println("Level order traversal of binary tree is: ");
tree.printLevelOrder();
}
main 代码中的第一行是产生“no enclosing instance for BinaryTree”错误的原因。
我尝试在主类之外创建不同的实例,但没有成功。我对在这里需要做什么来解决这个问题感到有点困惑。
请先使用IDE。将文件另存为 BinaryTree.java。 始终建议对类使用 public 访问说明符来运行它。喜欢
public class BinaryTree{...}
import java.util.*;
class Node {
int value;
Node left, right;
public Node(int value) {
this.value = value;
left = right = null;
} }
public class BinaryTree {
Node root;
public BinaryTree() {
root = null;
}
void printLevelOrder() {
if (root == null)
return;
Queue<Node> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()) {
int levelSize = queue.size();
for (int i = 0; i < levelSize; i++) {
Node node = queue.poll();
System.out.print(node.value + " ");
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
}
System.out.println();
}
}
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.root = new Node(4);
tree.root.left = new Node(2);
tree.root.right = new Node(6);
tree.root.left.left = new Node(1);
tree.root.left.right = new Node(3);
tree.root.right.left = new Node(5);
tree.root.right.right = new Node(7);
System.out.println("Level order traversal of binary tree is: ");
tree.printLevelOrder();
}
}
输出应如下所示:
Level order traversal of binary tree is:
4
2 6
1 3 5 7