**题目:**输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
这题考查的是二叉树的层次遍历,二叉树层次遍历一般采用队列来存储下一层的结点,然后用循环处理队列,逐个打印出来。
代码:
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public class Offer {
public ArrayList PrintFromTopToBottom(TreeNode root) {
ArrayList list = new ArrayList<>();
ArrayList queue = new ArrayList<>();
if (root == null) {
return list;
}
queue.add(root);
while (!queue.isEmpty()) {
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;
}
}
做这题的时候忘了层次遍历的处理方法,哎水平还是差了点!