NowCoder
題目描述
從上往下列印出二叉樹的每個節點,同層節點從左至右列印,
例如,以下二叉樹層次遍歷的結果為:1,2,3,4,5,6,7

解題思路
使用佇列來進行層次遍歷,
不需要使用兩個佇列分別存盤當前層的節點和下一層的節點,因為在開始遍歷一層的節點時,當前佇列中的節點數就是當前層的節點數,只要控制遍歷這么多節點數,就能保證這次遍歷的都是當前層的節點,
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<Integer> ret = new ArrayList<>();
queue.add(root);
while (!queue.isEmpty()) {
int cnt = queue.size();
while (cnt-- > 0) {
TreeNode t = queue.poll();
if (t == null)
continue;
ret.add(t.val);
queue.add(t.left);
queue.add(t.right);
}
}
return ret;
}
CSDN認證博客專家
分布式
Java
架構
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/259283.html
標籤:其他
上一篇:Mybatis連接池與事務深入
