题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
1.构建一个(TreeNode类型的)list,依次将当前节点的左子节点和右子节点放进去,
2.构建一个递增1的指针,将当前节点的val放入result中。
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> result = new ArrayList<>();
ArrayList<TreeNode> list = new ArrayList<>(); //如果知道树的大小可以用数组代替
if(root == null)
return result;
list.add(root);
int index = 0;
//不断向list中放,并向result中放的过程
while(list.size() != 0){
if(index == list.size())
break;
TreeNode tmp = list.get(index);
if(tmp.left != null)
list.add(tmp.left);
if(tmp.right != null)
list.add(tmp.right);
result.add(tmp.val);
index++;
}
return result;
}