JavaScriptでチェーン操作を実現-17 Iterate Reverse


TL;DR
チェーンを循環的に反転させ、シリーズのディレクトリを先頭とディレクトリに合わせます.
需要
インプリメンテーション方法reverse()は、チェーンテーブルを循環的に反転させ、チェーンテーブルは1回だけ巡回させるべきである.この関数はチェーン自体を直接修正しますので、戻り値は必要ありません.
var list = 2 -> 1 -> 3 -> 6 -> 5 -> null
reverse(list)
list === 5 -> 6 -> 3 -> 1 -> 2 -> null
法を解く
コードは以下の通りです
function reverse(list) {
  if (!list) return null

  let result
  for (let node = list; node; node = node.next) {
    result = new Node(node.data, result)
  }

  list.data = result.data
  list.next = result.next
}
考え方は、前から後までチェーンを通して、各ノードに対してコピーし、nextが前のノードを指すようにすることです.最後のresultは反転の新しいチェーンです.listはどうやって修正しますか?簡単には、resultの最初のノード値をlistに割り当て、listresultの第2のノードを指すようにすればいい.
参考資料
Codewars Kata GitHubのコードはGitHubのテストを実現します.