只需要在普通的BST基础上增加一个判断当前queue中数量的size即可,每个size就代表当前层的节点数量。
public static class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public static void BST(TreeNode root) {
if (root == null) return;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
while (size-- > 0) {
TreeNode top = queue.poll();
System.out.println(top.val + " ");
if (top.left != null) queue.offer(top.left);
if (top.right != null) queue.offer(top.right);
}
System.out.println();
}
}
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
BST(root);
}
网友评论