go语言实现单链表反转,go 链表反转
来源:互联网 浏览:83次 时间:2023-04-08
package mainimport ( "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 /美国高防vps/ 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)}