Tree level order--DFS /Queue

 

 

 

public class Solution{
public List<List<Integer>> levelOrder( TreeNode root){
List<List<Integer>> res= new ArrayList<>();
if(root==null) return res;
dfs(res, root,0);
return res;
}
private void dfs( List<List<Integer>res, TreeNode root, int depth){
if(root==null) return;
if(depth>=res.size())
res.add( new LinkedList<>.();
res.get(depth).add(root.val);

dfs(res,root.left, depth+1);

dfs(res,root.right,depth+1);

 

=======================================================

 

 

public void PrintNodeByLevel( Node root){
if(root==null) return;
Queue<Node> q= new ArrayDeque<Node>();
while(!q.isEmpty()){
int size=q.size();
for(int i=0;i<size;i++){
Node n=q.poll();
if(n.left !=null) q.offer(n.left);
if(n.right !=null) q.offer(n.right);
System.out.print(n.val+"");
}
System.out.println();
}}

posted @ 2022-07-22 07:17  flag!  阅读(24)  评论(0)    收藏  举报