この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。

BFE.devでのAI解答例 - JavaScript コーディング問題
137. 二分木を縦で巡回する

以下はJavaScriptによる一例です。

// 二分木の各ノードを表すクラスclass Node {  constructor(value, left = null, right = null) {    this.value = value;    this.left = left;    this.right = right;  }}// 二分木を縦で巡回する関数function traverseVertical(root) {  // 巡回結果を格納する配列  const result = [];  // 各深さのノードを格納する2次元配列  const levels = [];  // 根を最初にレベル0に追加  levels[0] = [root];  // 2次元配列を作成する  for (let i = 0; i < levels.length; i++) {    const currentLevel = levels[i];    const nextLevel = [];    for (let j = 0; j < currentLevel.length; j++) {      const node = currentLevel[j];      if (node.left) nextLevel.push(node.left);      if (node.right) nextLevel.push(node.right);    }    if (nextLevel.length > 0) {      levels.push(nextLevel);    }  }  // 配列の各要素を、上から下、左から右の順で巡回する  for (let i = 0; i < levels.length; i++) {    for (let j = 0; j < levels[i].length; j++) {      result.push(levels[i][j].value);    }  }  return result;}// テスト用の二分木を作成するconst tree = new Node(  6,  new Node(4, new Node(2, new Node(1), new Node(3)), new Node(7)),  new Node(9, new Node(10), new Node(8, new Node(5))));// 二分木を縦で巡回するconst result = traverseVertical(tree);// 結果を表示するconsole.log(result); // [6, 4, 2, 7, 1, 9, 10, 3, 8, 5]

このコードでは、与えられた二分木を上から下、左から右の順で配列に格納しています。まず、二分木の各深さにあるノードを2次元配列に格納して、それを上から下の順で巡回して、各ノードの値を結果配列に追加します。