点击个人博客,查看更多文章https://elonjelinek.github.io/
反转单链表
package main
import "fmt"
type node struct {
value int
nextNode *node
}
func reverseNode(head *node) *node {
// 先声明两个变量
// 前一个节点
var preNode *node
preNode = nil
// 后一个节点
nextNode := new(node)
nextNode = nil
for head != nil {
// 保存头节点的下一个节点,
nextNode = head.nextNode
// 将头节点指向前一个节点
head.nextNode = preNode
// 更新前一个节点
preNode = head
// 更新头节点
head = nextNode
}
return preNode
}
func printNode(head *node) {
for head != nil {
//fmt.Print(head.value, "\t")
fmt.Println(head)
head = head.nextNode
}
fmt.Println()
}
func main() {
node1 := new(node)
node1.value = 1
node2 := new(node)
node2.value = 2
node3 := new(node)
node3.value = 3
node4 := new(node)
node4.value = 4
node1.nextNode = node2
node2.nextNode = node3
node3.nextNode = node4
printNode(node1)
head := reverseNode(node1)
printNode(head)
}
运行结果:
&{1 0xc42000e1f0}
&{2 0xc42000e200}
&{3 0xc42000e210}
&{4 <nil>}
&{4 0xc42000e200}
&{3 0xc42000e1f0}
&{2 0xc42000e1e0}
&{1 <nil>}
点击个人博客,查看更多文章https://elonjelinek.github.io/
该博客探讨了如何使用Go语言来反转一个单链表。通过详细步骤解析了反转过程,并展示了运行结果。

5543

被折叠的 条评论
为什么被折叠?



