剑指offer | 从上到下打印二叉树 返回非零【JavaScript】

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

其实就是一个层序遍历的简单应用,但是由于对空结点返回的值错误,导致这题卡了很久...

错误代码

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function PrintFromTopToBottom(root)
{
    if (!root) return null;
    
    var queue = [];
    var node;
    var res = [];
    queue.push(root);
    while(queue.length !== 0){
        node = queue.shift();
        res.push(node.val);
        
        if (node.left) 
            queue.push(node.left);
        if (node.right) 
            queue.push(node.right);
    }
    return res;
}

第八行无论返回的是null还是undefined,都会报错:

检查了很久的语法错误,括号是不是中文的啦是不是又把1打成叹号了啊,都没用。最后灵光一闪把null改成[]后就通过了......

正确代码

function PrintFromTopToBottom(root)
{
    if (!root) return [];
    
    var queue = [];
    var node;
    var res = [];
    queue.push(root);
    while(queue.length !== 0){
        node = queue.shift();
        res.push(node.val);
        
        if (node.left) 
            queue.push(node.left);
        if (node.right) 
            queue.push(node.right);
    }
    return res;
}
posted @ 2020-09-26 19:25  Ueeei  阅读(87)  评论(0编辑  收藏  举报