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;
}
二叉树层级遍历并按行打印
最新推荐文章于 2024-08-05 22:01:00 发布