Leetcode Note: Go - Remove Linked List Elements

Remove Linked List Elements - LeetCode
https://leetcode.com/problems/remove-linked-list-elements/

  • Go 言語で取り組んだメモ

所感

  • Linked List から特定数値の要素を削除するというもの
  • シンプルに実装できそう

回答

100% golang solution - LeetCode Discuss
https://leetcode.com/problems/remove-linked-list-elements/discuss/284872/100-golang-solution

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func removeElements(head *ListNode, val int) *ListNode {
	if head == nil {
		return head
	}
	curr := head

	for ; curr.Next != nil; {
		if curr.Next.Val == val {
			curr.Next = curr.Next.Next
		} else {
			curr = curr.Next
		}
	}

	if head.Val==val {
		return head.Next
	}

	return head
}
  • Go 言語における for 文の仕様としては
    • for Init; Condition; Post; {} というフォーマットになっていて Init と Post がオプショナル
    • for ; curr.Next != nil; { のように 2つ の条件を指定した場合
      • Init を省略、 Conditioin として curr.Next != nil; 、 Post 無し、というして動作する

The Go Programming Language Specification - The Go Programming Language
https://go.dev/ref/spec#For_statements