问题描述:java
层遍历二叉树,同一层从左往右打印。node
定义二元查找树的结点为:spa
class BSTreeNode{ BSTreeNode(int x, BSTreeNode lt, BSTreeNode rt){ value = x; left = lt; right = rt; } int value; BSTreeNode left; BSTreeNode right; }
例如输入二叉树:code
6
/ \
4 12
/ \ / \
2 5 8 16rem
输出:6 4 12 2 5 8 16。ast
分析:class
二叉树的广度优先遍历。二叉树
public void BFSTraverse(){ if(null == root) return; Deque<BSTreeNode> deque = new ArrayDeque<BSTreeNode>(); deque.addLast(root); while(!deque.isEmpty()){ BSTreeNode node = deque.removeFirst(); System.out.println(node.value); if (node.left != null) deque.addLast(node.left); if (node.right != null) deque.addLast(node.right); } }