從上往下列印出二叉樹的每個節點,同層節點從左至右列印
二叉樹的層次遍歷,實際也是廣度優先遍歷,一般的解題套路是使用佇列來保存將要搜索的這一層元素,然后逐個查看,元素入隊的規則滿足先進先出原則
使用 ArrayList 或者 LinkedList 都可以實作上述功能
/**
* 使用 ArrayList 實作佇列
*/
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> result = new ArrayList<>();
ArrayList<TreeNode> queue = new ArrayList<>();
if(root == null) {
return result;
}
queue.add(root);
while(!queue.isEmpty()) {
TreeNode node = queue.remove(0);
if(node.left != null) {
queue.add(node.left);
}
if(node.right != null) {
queue.add(node.right);
}
result.add(node.val);
}
return result;
}
}
/**
* 使用 ArrayList 實作佇列
*/
import java.util.LinkedList;
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> result = new ArrayList<>();
LinkedList<TreeNode> queue = new LinkedList<>();
if(root == null) {
return result;
}
queue.offer(root);
while(!queue.isEmpty()) {
TreeNode node = queue.poll();
if(node.left != null) {
queue.offer(node.left);
}
if(node.right != null) {
queue.offer(node.right);
}
result.add(node.val);
}
return result;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/166808.html
標籤:其他
上一篇:0452. Minimum Number of Arrows to Burst Balloons (M)
下一篇:二叉搜索樹的后序遍歷序列
