206. 反转链表
package main import "fmt" type ListNode struct { Val int Next *ListNode } func reverseList(head *ListNode) *ListNode { var pre *ListNode // 前驱节点指针 cur := head // 当前节点指针 for cur != nil { next := cur.Next // 临时存储next指针 cur.Next = pre // next指针反转 pre = cur cur = next } return pre } func main() { list := createList(5) printList(list) list = reverseList(list) printList(list) } // 创建链表 func createList(sz int) *ListNode { head := &ListNode{} tail := head for i := 0; i < 5; i++ { node := &ListNode{Val: i} tail.Next = node tail = node } return head.Next } // 打印链表 func printList(head *ListNode) { for p := head.Next; p != nil; p = p.Next { fmt.Printf("%d ", p.Val) } fmt.Println() }
PS C:\Users\wushujie\Desktop\leetcode\code> go run .\reverse-linked-list.go
1 2 3 4
3 2 1 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律