剣指offer JZ 22-上から下へ二本の木を印刷する-JavaScript

794 ワード

1、テーマの説明
二叉樹の各ノードは、上から下に印刷され、同じ層のノードは左から右に印刷される.
2、考え方を解く
この問題は二叉の木の広さを優先的に遍歴して、二つの補助列を借りて、一つは結点を保存するために使用して、一つは結点の値を保存するために使うべきです.
まず、ルートノードをキューに追加し、次にキューの要素を巡回して、まず要素の左右のノードにアクセスし、次に左右のサブノードをキューに追加する.
/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function PrintFromTopToBottom(root) {
    let queue = [];
    queue.push(root);    //    push    
    let result = [];

    if (root == null) return result;

    while (queue.length) {
        let temp = queue.shift();    //       
        result.push(temp.val);       //   push    

        if (temp.left) queue.push(temp.left);    //         ,push   
        if (temp.right) queue.push(temp.right);  //         ,push   
    }
    return result;    //    
}