ホームページ  >  記事  >  Go言語で単一リンクリストを実装する方法

Go言語で単一リンクリストを実装する方法

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2023-06-09 11:50:191500ブラウズ

Go 言語で単一リンク リストを実装する方法は次のとおりです: 1. Go サンプル ファイルを作成します; 2. リンク リストのノード構造を定義します; 3. ノードを走査し、ノードの先頭と末尾に新しいノードを追加します。リンクリストの指定; 4. リンクリストの位置に新しいノードを挿入または削除を指定; 5. リンクリストの指定位置のノード値を取得し、ノードの追加、削除、変更、クエリなどの操作を実装します。

Go言語で単一リンクリストを実装する方法

このチュートリアルのオペレーティング システム: Windows 10 システム、Go1.20.1 バージョン、Dell G3 コンピューター。

単一リンクリストは、構造体とポインターを介して Go 言語で実装できます。

具体的な方法は次のとおりです:

1. リンク リスト ノード構造を定義します

type ListNode struct {
    Val int
    Next *ListNode
}

2. を実装します。ノードの追加、削除、変更、確認などの操作

// 遍历节点
func (head *ListNode) Traverse() {
for head != nil {
fmt.Println(head.Val)
head = head.Next
}
}
// 在链表头添加新节点
func (head *ListNode) AddAtHead(val int) *ListNode {
node := &ListNode{
Val:  val,
Next: head,
}
return node
}
// 在链表尾添加新节点
func (head *ListNode) AddAtTail(val int) *ListNode {
if head == nil {
return &ListNode{
Val:  val,
Next: nil,
}
}
cur := head
for cur.Next != nil {
cur = cur.Next
}
cur.Next = &ListNode{
Val:  val,
Next: nil,
}
return head
}
// 在链表指定位置插入新节点
func (head *ListNode) AddAtIndex(index, val int) *ListNode {
if index <= 0 {
return head.AddAtHead(val)
}
cur := head
for i := 0; i < index-1 && cur != nil; i++ {
cur = cur.Next
}
if cur == nil {
return head
}
node := &ListNode{
Val:  val,
Next: cur.Next,
}
cur.Next = node
return head
}
// 删除链表指定位置的节点
func (head *ListNode) DeleteAtIndex(index int) *ListNode {
if index < 0 {
return head
}
if index == 0 {
return head.Next
}
cur := head
for i := 0; i < index-1 && cur != nil; i++ {
cur = cur.Next
}
if cur == nil || cur.Next == nil {
return head
}
cur.Next = cur.Next.Next
return head
}
// 获取链表指定位置的节点值
func (head *ListNode)

以上がGo言語で単一リンクリストを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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