[劍指offer] 把二叉樹列印成多行
本文首發於我的個人部落格:尾尾部落
題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
解題思路
就是二叉樹的層序遍歷,用佇列來實現。我們需要兩個變數,一個start記錄當前層已經列印的節點個數,一個end記錄前當層所有的節點個數,當 start == end 時,表時當前層遍歷完了,就可以開始下一層遍歷。
參考程式碼
import java.util.ArrayList;
import java.util.Queue;
import java.util.LinkedList;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer> > res = new ArrayList<ArrayList<Integer> >();
if(pRoot == null)
return res;
ArrayList<Integer> temp = new ArrayList<Integer>();
Queue<TreeNode> layer = new LinkedList<TreeNode>();
layer.offer(pRoot);
int start = 0, end = 1;
while(!layer.isEmpty()){
TreeNode node = layer.poll();
temp.add(node.val);
start ++;
if(node.left != null)
layer.add(node.left);
if(node.right != null)
layer.add(node.right);
if(start == end){
start = 0;
res.add(temp);
temp = new ArrayList<Integer>();
end = layer.size();
}
}
return res;
}
}
相關文章
- 劍指offer--把二叉樹列印成多行(C++)二叉樹C++
- 劍指offer——重建二叉樹二叉樹
- 劍指offer(四)重建二叉樹二叉樹
- 劍指 Offer 07. 重建二叉樹二叉樹
- 劍指Offer-40-二叉樹的深度二叉樹
- 劍指offer——二叉樹的深度C++二叉樹C++
- 【劍指offer】27. 二叉樹的映象二叉樹
- 劍指offer——二叉樹的映象C++二叉樹C++
- 劍指offer | 55 - I. 二叉樹的深度二叉樹
- 【劍指offer】5.二叉樹的映象和列印二叉樹
- 力扣 - 劍指 Offer 27. 二叉樹的映象力扣二叉樹
- 劍指Offer-34-把陣列排成最小的數陣列
- 劍指offer——把陣列排成最小的數C++陣列C++
- # 劍指 Offer 68 - II. 二叉樹的最近公共祖先二叉樹
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- 劍指offer——從上往下列印二叉樹C++二叉樹C++
- [劍指offer] 二叉搜尋樹的後序遍歷序列
- leetcode 102 劍指Offer 32 二叉樹的層次遍歷LeetCode二叉樹
- 劍指 Offer 32 - III. 從上到下列印二叉樹 III二叉樹
- 力扣 - 劍指 Offer 45. 把陣列排成最小的數力扣陣列
- 劍指 offer(1) -- 陣列篇陣列
- LeetCode 劍指offer——從上到下列印二叉樹 II、從上到下列印二叉樹 IIILeetCode二叉樹
- 《劍指 Offer》棧實現佇列佇列
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹
- 【劍指offer】【4】根據前序和中序結果,重建二叉樹二叉樹
- 劍指 Offer 33. 二叉搜尋樹的後序遍歷序列
- 劍指 Offer 32 - I. 從上到下列印二叉樹(java解題)二叉樹Java
- 劍指 Offer 34. 二叉樹中和為某一值的路徑二叉樹
- 劍指Offer-把陣列中的數排成一個最小的數陣列
- 劍指OFFER
- 劍指 Offer 54. 二叉搜尋樹的第k大節點 mark
- (python版)《劍指Offer》JZ57:二叉樹的下一個結點Python二叉樹
- 劍指offer之順序列印陣列陣列
- 劍指offer——斐波那契數列
- 劍指offer-17:樹的子結構
- PHPer面試必看:分門別類帶你擼《劍指Offer》之二叉樹PHP面試二叉樹
- 劍指offer刷題筆記-32.從上到下列印二叉樹 進階筆記二叉樹
- 力扣 - 劍指 Offer 54. 二叉搜尋樹的第k大節點力扣