Go 言語で単一リンク リストを実装する方法は次のとおりです: 1. Go サンプル ファイルを作成します; 2. リンク リストのノード構造を定義します; 3. ノードを走査し、ノードの先頭と末尾に新しいノードを追加します。リンクリストの指定; 4. リンクリストの位置に新しいノードを挿入または削除を指定; 5. リンクリストの指定位置のノード値を取得し、ノードの追加、削除、変更、クエリなどの操作を実装します。
このチュートリアルのオペレーティング システム: 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 サイトの他の関連記事を参照してください。