Go 言語でリンク リスト ノードを削除する方法: まず、次のノードの値を現在削除されているノードに移動し、次に現在のノードの Next を変更します (例: [node.Next = node.Next)。 。次]。
#この記事の動作環境: Windows10 システム、GO 1.11.2、thinkpad t480 コンピューター。
具体的な方法:
最適な解決策:
次のノードの値を現在削除されているノードに移動し、次のノードの Next
node.Val = node.Next.Val node.Next = node.Next.Next
を変更します。現在のノード その他の方法:
p.next = p.next.next は削除の目的を達成できます
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(head *ListNode, val int) *ListNode { if head.Val == val{ return head.Next } pre:=head for head.Next.Val != val{ head = head.Next } head.Next = head.Next.Next return pre }
Title:
リンクされたリスト内のノードを削除します
リンクされたリスト内の特定の (終端ではない) ノードを削除できる関数を作成してください。削除を要求されたノードのみが与えられます。
既存のリンク リストがあります – head = [4,5,1,9]。これは次のように表現できます。
例 1:
入力: head = [4,5,1,9]、node = 5
出力: [4,1,9]
説明: リンク リストに値 5 を持つ 2 番目のノードがあるとします。 , 次に、関数を呼び出した後、リンク リストは 4 -> 1 -> 9 になるはずです。
例 2:
入力: head = [4,5,1,9]、node = 1
出力: [4,5,9]
説明: リンク リスト内の 3 番目のノードの値が 1 である場合、関数を呼び出した後、リンク リストは 4 -> 5 -> になるはずです。 ; 9.
コード
削除の目的を達成するために引き続き注意してください
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func deleteNode(node *ListNode) { for node.Next.Next != nil { node.Val = node.Next.Val node = node.Next } node.Val = node.Next.Val node.Next = nil }
関連する推奨事項: golangチュートリアル
以上がGo言語でリンクリストノードを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。