ホームページ  >  記事  >  バックエンド開発  >  Go言語でリンクリストノードを削除する方法

Go言語でリンクリストノードを削除する方法

王林
王林オリジナル
2021-01-06 13:45:283311ブラウズ

Go 言語でリンク リスト ノードを削除する方法: まず、次のノードの値を現在削除されているノードに移動し、次に現在のノードの Next を変更します (例: [node.Next = node.Next)。 。次]。

Go言語でリンクリストノードを削除する方法

#この記事の動作環境: 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]。これは次のように表現できます。

Go言語でリンクリストノードを削除する方法

例 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。