Leetcode Note: Go - Reverse Linked List
Reverse Linked List - LeetCode
https://leetcode.com/problems/reverse-linked-list/
- Go 言語で取り組んだメモ
 
所感
- 与えられた Linked List を逆順にして return
 
回答
8ms Golang solution - LeetCode Discuss
https://leetcode.com/problems/reverse-linked-list/discuss/58293/8ms-Golang-solution
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
	var prev *ListNode
	for head != nil {
		head.Next, prev, head = prev, head, head.Next
	}
	return prev
}var prev *ListNode- ListNode を扱う prev 変数を定義
 
for head != nil {引数で渡ってくる Node が nil じゃないか✅head.Next, prev, head = prev, head, head.Next- head.Next = prev
- 次に reverseList に渡される Next を空の ListNode にしておく?
 - 終端になるハズの nil を最初に入れて逆順にしていくということかな。自信なし
 
 - prev = head
- return する prev に head を代入
 - 操作の反転
 
 - head = head.Next
- 現在の head と次の head を入れ替える
 - 再帰呼び出しの繰り返しを進めるためのものという理解
 
 
- head.Next = prev
 
return prev- head が nil だったら空の ListNode が入った prev
 - head が nil じゃなければ head が代入された prev
 
【LeetCode】206. Reverse Linked Listを解く
https://zenn.dev/ike_pon/articles/ec970cc20e7ff05c850b
色々調べてみたが腹落ちできず。リスト操作のイメージが付いていないのが原因かもしれない。