剑指offer--把二叉树打印成多行

题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

思路:把每一层放入queue中,遍历queue,把根放入temp中,把根的值存入tempVal中,tempVal存的是每一层的结果。结束循环的条件是queue中不再有根。

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Print(pRoot)
{
    var result = [];
    var queue = [];
    if (!pRoot) {
        return [];
    }
    
    queue.push(pRoot);
    while(queue.length) {
        var len = queue.length;
        var tempVal= [];
        for (var i =0;i<len;i++) {
            var temp = queue.shift();
            tempVal.push(temp.val);
            if (temp.left) {
                queue.push(temp.left);
            }
            if (temp.right) {
                queue.push(temp.right);
            }
        }
        result.push(tempVal);
    }
    return result;
}
原文地址:https://www.cnblogs.com/sarah-wen/p/10738371.html