从上往下打印出二叉树的每个节点,同层节点从左至右打印。
poll是队列数据结构实现类的方法,从队首获取元素,同时获取的这个元素将从原队列删除;pop是栈结构的实现类的方法,表示返回栈顶的元素,同时该元素从栈中删除,当栈中没有元素时,调用该方法会发生异常
import java.util.ArrayList;
import java.util.LinkedList;
public class T_02_PrintFromTopToBottom {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public ArrayList<Integer> printFromTopToBottom(TreeNode root) {
ArrayList<Integer> array = new ArrayList<>();
if (root == null) {
return array;
}
LinkedList<TreeNode> list = new LinkedList<>();
list.add(root);
while (!list.isEmpty()) {
TreeNode node = list.poll();
array.add(node.val);
if (node.left != null) {
list.add(node.left);
}
if (node.right != null) {
list.add(node.right);
}
}
return array;
}
}
- ArrayList 查找时间复杂度为O(1),添加删除为O(n)
LinkedList查找时间复杂度为O(n),添加删除为O(1)