从上往下打印出二叉树的每个节点,同层节点从左至右打印。
2017-11-14 22:06
211 查看
分析:本题中我们利用层序遍历的思想,首先将树中所有节点按照一层从左到右依次保存到ArrayList中,然后在逐一取出节点的值添加到集合中,最后返回集合。
import java.util.ArrayList;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
//层序遍历
ArrayList<Integer> list=new ArrayList<Integer>();
boolean flag=true;
int i=0;
int count=0;
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<TreeNode> tn=new ArrayList<TreeNode>();//用于保存当前节点的左右子节点
if(root !=null){
tn.add(root);
while(flag){
if(root.left !=null){
//添加左子树
tn.add(root.left );
count++;
}
if(root.right !=null){
//添加右子树
tn.add(root.right);
count++;
}
if(i<count){
i++;
root=tn.get(i);//准备添加下一个节点的左右子节点
}else{
flag=false;
}
}
}
for(int j=0;j<tn.size();j++){
list.add(tn.get(j).val);
}
return list;
}
}
import java.util.ArrayList;
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
//层序遍历
ArrayList<Integer> list=new ArrayList<Integer>();
boolean flag=true;
int i=0;
int count=0;
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<TreeNode> tn=new ArrayList<TreeNode>();//用于保存当前节点的左右子节点
if(root !=null){
tn.add(root);
while(flag){
if(root.left !=null){
//添加左子树
tn.add(root.left );
count++;
}
if(root.right !=null){
//添加右子树
tn.add(root.right);
count++;
}
if(i<count){
i++;
root=tn.get(i);//准备添加下一个节点的左右子节点
}else{
flag=false;
}
}
}
for(int j=0;j<tn.size();j++){
list.add(tn.get(j).val);
}
return list;
}
}
相关文章推荐
- 剑指offer java编程——从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- C++从上往下打印出二叉树的每个节点,同层节点从左至右打印(牛客剑指offer)
- java实现从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印
- 剑指offer 从上往下打印出二叉树的每个节点
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 1、从上往下打印出二叉树的每个节点,同层节点从左至右打印
- (树的层序遍历)从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 java
- 剑指offer-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 19.从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 剑指offer-07-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 《剑指Offer》面试题:从上往下打印出二叉树的每个节点
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印(剑指offer,面试题32)
- java 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 如何在遍历二叉树的同时,打印出每个节点的深度
- 输入一颗二元树,从上往下按层打印树的每个节点,同一层按照从左往右的顺序打印。