从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
复制代码
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
复制代码
提示:
节点总数 <= 1000
本题很简单,只是将前序遍历的结果每一层放在一个子数组
只需要在前序遍历的过程中,记录当前节点的深度,然后将节点值放入结果数组对应子数组
遍历完成后,返回结果数组即可
代码如下:
var levelOrder = function(root) {
// 创建结果数组
const res = [];
// 前序遍历二叉树,并记录深度,将当前节点值放入对应数组
function preorder(node,deep){
if(node === null) return;
if(!res[deep]) res[deep] = [];
res[deep].push(node.val);
preorder(node.left,deep+1);
preorder(node.right,deep+1);
}
preorder(root,0);
// 返回结果
return res;
};
复制代码
至此我们就完成了 leetcode-剑指 Offer 32 - II-从上到下打印二叉树 II
如有任何问题或建议,欢迎留言讨论!