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

BFE.devでのAI解答例 - JavaScript コーディング問題
47. linked listを逆順にする

解答例:

再起を使わずに解く場合:

function reverseLinkedList(head: Node): Node {  // 空のリストの場合  if (!head) {    return null;  }  let prev = null;  let curr = head;  while (curr) {    const next = curr.next;    curr.next = prev;    prev = curr;    curr = next;  }  return prev;}

再起を使って解く場合:

function reverseLinkedList(head: Node): Node {  // 空のリストの場合  if (!head || !head.next) {    return head;  }  const reversedHead = reverseLinkedList(head.next);  head.next.next = head; // 現在のノードを反転したリストの最後に挿入  head.next = null; // 現在のノードのnextをnullに設定  return reversedHead;}

再起を使った方がコードが短く、理解しやすい可能性があります。しかし、再起を使用するとスタックオーバーフローのリスクがありますので、入力が非常に大きい場合には注意が必要です。