[Wins the offer] [] [java] the binary tree binary tree print into multiple lines

topic

Printing the binary tree in layers from top to bottom, from left to right with the output layer node. Each line of output layer.

Thinking

1. Direct comparison line printing binary tree from left to right line by line can then again with ArrayList package can be nested.

Code

import java.util.ArrayList;

import java.util.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
//按层打印
public class Solution {
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>();
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        if(pRoot==null){
            return ret;
        }
        queue.offer(pRoot);
        while(!queue.isEmpty()){
            ArrayList<Integer> res = new ArrayList<Integer>();
            int count = queue.size();
            while(count-->0){
                TreeNode node = queue.poll();
                if(node==null) continue;
                res.add(node.val);
                queue.offer(node.left);
                queue.offer(node.right);
            }
            if(res.size()!=0){
                ret.add(res);
            }
        }
        return ret;        
    }
    
}

to sum up

Published 95 original articles · won praise 8 · views 40000 +

Guess you like

Origin blog.csdn.net/qq_29295351/article/details/104657406