題目描述
從上往下打印出二叉樹(shù)的每個(gè)節(jié)點(diǎn),同層節(jié)點(diǎn)從左至右打印。如果節(jié)點(diǎn)為空則跳過(guò)不輸出。
解決方法
思路是用linkedlist模擬一個(gè)隊(duì)列來(lái)存儲(chǔ)相應(yīng)的TreeNode
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> list = new ArrayList<>();
List<TreeNode> queue = new LinkedList<>();
if (root == null) {
return list;
}
queue.add(root);
while (queue.size() != 0) {
TreeNode temp = queue.remove(0);
if (temp.left != null){
queue.add(temp.left);
}
if (temp.right != null) {
queue.add(temp.right);
}
list.add(temp.val);
}
return list;
}
}
復(fù)雜度分析:
- 時(shí)間復(fù)雜度:O(n)。
- 空間復(fù)雜度:O(n)。

哎呀,如果我的名片丟了。微信搜索“全菜工程師小輝”,依然可以找到我