剑指 Offer 32 - I. 从上到下打印二叉树

https://leetcode-cn.com/leetbook/read/illustrate-lcof/xsnu0i/
例如:
给定二叉树: [3,9,20,null,null,15,7],
返回:[3,9,20,15,7]

var levelOrder = function(root) {
    if(root == null){
        return [];
    }
    let queue = [root];
    let res = [];
    while(queue.length != 0){
        let node = queue.shift();
        res.push(node.val);
        if(node.left){
            queue.push(node.left);
        }
        if(node.right){
            queue.push(node.right);
        }
    }
    return res
};

剑指 Offer 32 - II. 从上到下打印二叉树 II

https://leetcode-cn.com/leetbook/read/illustrate-lcof/xswwvg/
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
给定二叉树: [3,9,20,null,null,15,7],
返回其层次遍历结果:[[3],[9,20], [15,7]]

var levelOrder = function(root) {
  if(root == null){
        return [];
    }
    let queue = [root];
    let res = [];
    while(queue.length != 0){
        let level = [];
        let len = queue.length;
        for(let i = 0; i < len; i++){
            let node = queue.shift();
            level.push(node.val);
            if(node.left){
                queue.push(node.left);
            }
            if(node.right){
                queue.push(node.right);
            }
        }
        res.push(level)
    }
    return res
};

剑指 Offer 32 - III. 从上到下打印二叉树 III

https://leetcode-cn.com/leetbook/read/illustrate-lcof/xs0paj/
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

例如:
给定二叉树: [3,9,20,null,null,15,7],
返回其层次遍历结果:[[3],[20,9], [15,7]]

var levelOrder = function(root) {
     if(root == null){
        return [];
    }
    let queue = [root];
    let res = [];
    let flag = 1;
    while(queue.length != 0){
        let level = [];
        let len = queue.length;
        for(let i = 0; i < len; i++){
             let node = queue.shift();
            if(flag==1){  
                level.push(node.val);
            }else{
                level.unshift(node.val);
            };
            if(node.left){
                queue.push(node.left);
                }
            if(node.right){
                queue.push(node.right);
                }
        }
        flag = -flag; 
        res.push(level)
    }
    return res
};

BFS 翻转二叉树

var mirrorTree = function(root) {
    if(root == null){
        return []
    }
    let res = [];
    let queue = [root];
    while(queue.length != 0 ){
        let node = queue.shift();
        res.push(node.val);
        if(node.right){
            queue.push(node.right)
        }
        if(node.left){
            queue.push(node.left)
        }
    }
    return res
};

喜爱一切可爱的事物~