问题描述:给定一个二叉树,返回其节点值至底而上的层序遍历,即按从叶子节点躲在层到根节点。
bfs求解:一层一层的遍历很适合用于bfs遍历;
public List>layer(TreeNode root)
{
List> res=new List>();
Queuequeue=new LinkedList<>();
queue.add(root.val);
while(!queue.isEmpty())
{
int queueSize=queue.size();
Listlist=new LinkedList<>();
for(int i=0;i
dfs求解:每遍历到一层,若当前没有遍历过的层次,则在List>res中再插入一个List
public void layer(TreeNode root ,List> res,int level)
{
if(root==null){return;}
if(level<=res.size())
{
res.get(res.size()-level).add(root.val);
layer(root.left,res,level+1);
leyer(root.right,res,level+1);
}else
{
res.add(0,new LinkedList());
res.get(0).add(root.val);
layer(root.left,res,level+1);
leyer(root.right,res,level+1);
}
}
public List>Layer(TreeNode root)
{
List> res=new List>();
layer(root,res,0);
return res;
}