劍指Offer 32-III. 從上到下列印二叉樹 III
阿新 • • 發佈:2021-09-17
#
根據從上到下列印二叉樹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 };