直接代码吧,都是我自己写的测试代码

package main

import "fmt"

type NodeList struct {
	data int
	next *NodeList
}

func ShowNode(node *NodeList)  {
	for node !=nil {
		//fmt.Printf("type :%T ,value:%v\n",*node,*node)
		//fmt.Printf("data:%v,next:%v--->",node.data,node.next)
		fmt.Printf("%v--->",node.data)
		node = node.next //移动指针
	}
}


func InsertHeadData(){
	var head = new(NodeList)
	head.data = 0
	var tail *NodeList
	tail = head
	for i :=1;i<10;i++{
		var node = NodeList{data: i}
		node.next = tail
		tail = &node
	}
	ShowNode(tail)
}

func InsertTailData()  {
	var head = new(NodeList)
	head.data = 0
	var newList *NodeList
	newList = head
	for i :=1;i<10;i++{
		var node = NodeList{data: i}
		(*newList).next = &node
		newList = &node
	}
	ShowNode(head)
}

func main() {
	//node1 := new(NodeList)
	//node2 := new(NodeList)
	//node1.data = 1
	//node2.data = 2
	//
	//node1.next = node2
	//
	//node3 := new(NodeList)
	//node2.next = node3
	//
	//ShowNode(node1)
	//InsertHeadData()
	InsertTailData()
}