二叉树层级遍历并按行打印

来源:互联网 发布:淘宝网薄印花半大开衫 编辑:程序博客网 时间:2024/05/29 16:19
public static int[][] printTree(TreeNode root) {    // write code here    int row = 0, col=0;    // 指向二维数组的当前行    int[][] result = new int[500][500];    ArrayList<TreeNode> queue = new ArrayList<>();    TreeNode last = root;// 指向当前行的最后    queue.add(root);    TreeNode nLast = root;    while(!queue.isEmpty()) {        TreeNode p = queue.remove(0);        result[row][col++] = p.val;        if(p.left != null) {            queue.add(p.left);            nLast = p.left;        }        if(p.right != null) {            queue.add(p.right);            nLast = p.right;        }        if(p.equals(last)){ //到达行末尾            row ++;// 下一行            col = 0;            last = nLast;        }    }    return result;}
0 0