package main
import (
"fmt"
)
type Node struct {
Val int
Next *Node
}
func reverse(listNode *Node) *Node {
var node *Node
head := listNode
for head != nil {
head.Next, node, head = node, head, head.Next
// 下边是上一句的拆解
// tmp := head.Next
// head.Next = node
// node = head
// head = tmp
}
return node
}
func initList(data []int) *Node {
head := &Node{}
h := head
for _, v := range data[:len(data)-1] {
h.Next = &Node{}
h.Val = v
h = h.Next
}
h.Val = data[len(data)-1]
return head
}
func printList(listNode *Node) {
for listNode != nil {
fmt.Println(listNode.Val)
listNode = listNode.Next
}
}
func main() {
data := []int{1,3,5,6,7}
listNode := initList(data)
printList(listNode)
listNode = reverse(listNode)
printList(listNode)
}
Go单链表反转
猜你喜欢
转载自blog.csdn.net/u013474436/article/details/105303658
今日推荐
周排行