【算法】求二叉树的层序遍历
题目如图:

首先,从输入输出中我们完全可以把结果当成一个二维数组,树每多向下延伸一层,我们数组就多一层,也就是说,我们不断对二叉树进行遍历,每当向下有分支且为当层首个时,使数组再多一层,直到某层遍历完,全部是子节点
递归写法
/** function TreeNode(x) {* this.val = x;* this.left = null;* this.right = null;* }*/
/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param root TreeNode类 * @return int整型二维数组*/
function levelOrder( root ) {// write code herefunction preOrder(root,level){//这里用前中后都可以,//三种遍历都是左边节点一定比右边节点先遍历到,//那么push_back至对应深度的数组次序也一定与层次遍历一致;//所以针对此方法,中序、后序一样可以实现层次遍历。if(root==null)return if(level>=res.length)res.push([])res[level].push(root.val)preOrder(root.left,level+1)preOrder(root.right,level+1)}let res=[]preOrder(root,0)return res
}
module.exports = {levelOrder : levelOrder
};
