1. 程式人生 > 其它 >劍指Offer 32-III. 從上到下列印二叉樹 III

劍指Offer 32-III. 從上到下列印二叉樹 III

#

根據從上到下列印二叉樹II中的方法,新增一個引數來判斷以哪個方向來儲存資料。

也可以利用res的奇偶性來判斷當前層的儲存方向。

且可以再for迴圈結束之後,利用reverse()方法來對temp進行翻轉。

 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 == null) return []; 14 let arr = [root], res = [], rev = false; 15 while(arr.length > 0) { 16 let temp = []; 17 for(let i = arr.length; i > 0; i--) { 18 root = arr.shift(); 19 if(rev) { 20 temp.unshift(root.val);
21 }else { 22 temp.push(root.val); 23 } 24 if(root.left) { 25 arr.push(root.left); 26 } 27 if(root.right) { 28 arr.push(root.right); 29 } 30 } 31 rev = !rev; 32 res.push(temp);
33 } 34 return res; 35 };