二分搜索樹的層序遍歷
通過引入一個隊列來支撐層序遍歷;
- 如果根節(jié)點為空猜旬,無可遍歷;
- 如果根節(jié)點不為空:
- 先將根節(jié)點入隊甩卓;
- 只要隊列不為空:
- 出隊隊首節(jié)點鸠匀,并遍歷;
- 如果隊首節(jié)點有左孩子逾柿,將左孩子入隊缀棍;
- 如果隊首節(jié)點有右孩子,將右孩子入隊机错;
要點
- 想先處理的爬范,先放進隊列,讓它先排著隊弱匪,先排著隊了青瀑,就先被處理了;
// 二分搜索樹的層序遍歷
public void levelOrder(){
if(root == null)
return;
Queue<Node> q = new LinkedList<>();
q.add(root);
while(!q.isEmpty()){
Node cur = q.remove();
System.out.println(cur.e);
if(cur.left != null)
q.add(cur.left);
if(cur.right != null)
q.add(cur.right);
}
}