剑指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 };

 

上一篇:KVM中安装Windows Server 2008 R2系统


下一篇:ApiPost 获取和设置token