剣指offer JZ 22-上から下へ二本の木を印刷する-JavaScript
794 ワード
1、テーマの説明
二叉樹の各ノードは、上から下に印刷され、同じ層のノードは左から右に印刷される.
2、考え方を解く
この問題は二叉の木の広さを優先的に遍歴して、二つの補助列を借りて、一つは結点を保存するために使用して、一つは結点の値を保存するために使うべきです.
まず、ルートノードをキューに追加し、次にキューの要素を巡回して、まず要素の左右のノードにアクセスし、次に左右のサブノードをキューに追加する.
二叉樹の各ノードは、上から下に印刷され、同じ層のノードは左から右に印刷される.
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; //
}