golang 反转一个单链表

问题:

反转一个单链表

代码示例:

package main

import "fmt"

// 时间:2021-10-29
// 功能:反转单链表 (比如一个单链表 里边是 1 3 5 7,处理后得到一个单链表里边是 7 5 3 1)

type node struct {
    data int
    next *node
}

func main() {
    // 初始化一个链表
    sli := []int{1, 3, 5, 7}
    myNode := new(node)
    myNode.data = sli[0]
    head := myNode
    for _, v := range sli[1:] {
        temp := new(node)
        temp.data = v
        myNode.next = temp
        myNode = temp
    }
    tempNode := head
    for tempNode != nil {
        fmt.Println(tempNode.data)
        tempNode = tempNode.next
    }

    fmt.Println("----------------------------------")

    newList := solve(head)
    tempNode = newList
    for tempNode != nil {
        fmt.Println(tempNode.data)
        tempNode = tempNode.next
    }
}

func solve(list *node) *node {
    var newHead *node
    nowNode := list
    for nowNode != nil {
        temp := nowNode
        nowNode = nowNode.next

        temp.next = newHead
        newHead = temp
    }

    return newHead
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容