一、题目
二、重点难点分析
1.刚刚忘记补充这道题了,这道题和前两道是一样的,只不过这里的题目要求时层数为单数时,按照从左到右输出打印,双数时就按照从右到左输出打印
2.综上所述:我们可以按照前两道代码,加一个判断层数的条件即可,这里我加了falg,然后再结尾处加了一个判断falg的,里面的利用到reverse翻转函数,把temp里的元素进行翻转输出。
三、代码分析、
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {number[][]} */ var levelOrder = function(root) { if( root == null) return []; let queue = [] queue.push(root); let res = []; let falg=false; while(queue.length){ var temp =[]; for( let i = queue.length; i>0;i--){ let top = queue.shift(); temp.push(top.val); if(top.left){ queue.push(top.left); } if(top.right){ queue.push(top.right); } } if(falg){ temp = temp.reverse(); } res.push(temp); falg = !falg; } return res; };