剑指 Offer 32 - II. 从上到下打印二叉树 II
方法一 利用队列层序遍历
因为打印的是二叉树,所以每一层的节点数目是可循的。且可以根据当前队列中数据的数量来判断该层需要打印多少次节点。
注意,循环中没有令root=root.left(root.right)的操作时,利用root的空与否作为循环条件存在风险。
1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val) { 4 * this.val = val; 5 * this.left = this.right = null; 6 * } 7 */ 8 /** 9 * @param {TreeNode} root 10 * @return {number[][]} 11 */ 12 var levelOrder = function(root) { 13 if(!root) return []; 14 let queue = [], res = []; 15 queue.push(root); 16 while(queue.length != 0) { 17 let temp = []; 18 for(let i = queue.length - 1; i >= 0; i--) { 19 root = queue.shift(); 20 //console.log(queue.length); 21 //console.log(root); 22 if(root) { 23 if(root.left) { 24 queue.push(root.left); 25 } 26 if(root.right) { 27 queue.push(root.right); 28 } 29 temp.push(root.val); 30 } 31 } 32 //console.log(temp); 33 res.push(temp); 34 } 35 return res; 36 };

#
浙公网安备 33010602011771号