125 从上到下打印二叉树II

问题描述:从上到下按层打印二叉树,同一层的节点按照从左到右的顺序打印,每一层打印一行。

BFS求解。

public List>bfs(TreeNode root)
{
Queuequeue=new LinkedList<>();
queue.add(root);
List> res;
while(!queue.isEmpty())
{
ListnewList=new LinkedList<>();
int queueSize=queue.size();
for(int i=0;i

DFS求解:

public void dfs(TreeNode root,List>res,int level)
{
if(root==null){return;}
if(level>res.size())
{
Listlist=new LinkedList<>();
list.add(root);
res.add(list);
dfs(root.left,res,level+1);
dfs(root.right,res,level+1);
}else
{
res.get(level).add(root);
​​​​​​​dfs(root.left,res,level+1);
dfs(root.right,res,level+1);
}
}
public List>Dfs(TreeNode root)
{
List>res;
dfs(root,res);
}

你可能感兴趣的:(JAVA刷题500道,java,算法,开发语言,深度优先)