题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路: 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;
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
;
}