問題描述: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); } }