文章 32
评论 269
浏览 46263
GO实现一个单链表

GO实现一个单链表

不多 BB,直接上代码,有关链表定义,请自行百度

package main

import "fmt"

type ListNode struct {
	Val  interface{}
	Next *ListNode
}

// 初始化
func New() *ListNode {
	return &ListNode{nil, nil}
}

// 遍历输出
func (head *ListNode) Traverse() {
	point := head
	fmt.Println("--------start----------")
	for nil != point {
		fmt.Println(point.Val)
		point = point.Next
	}
	fmt.Println("--------end----------")
}

// 插入
func (head *ListNode) Insert(val int) {
	p := head
	for p.Next != nil {
		p = p.Next // 位移至尾节点
	}
	s := &ListNode{Val: val}
	p.Next = s
	if p.Val == nil { // 插入时发现首节点为空时前移
		p.Val = p.Next.Val
		p.Next = p.Next.Next
	}
}



func main() {
	linkedList := New()
	linkedList.Insert(1)
	linkedList.Insert(2)
	linkedList.Traverse()
	// --------start----------
	// 1
	// 2
	// --------end----------
}


文章发布自:墨殇的技术博客,转载请注明出处,谢谢!

凡打不倒我的,必使我强大!!!—— 墨殇的技术博客