Go语言实现:【剑指offer】反转链表
2024-10-08 06:47:37
该题目来源于牛客网《剑指offer》专题。
输入一个链表,反转链表后,输出新链表的表头。
Go语言实现:
迭代:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
var pre *ListNode = nil
for head!=nil {
//先存下一个节点,不然一会就没了
next := head.Next
//当前节点指向上一个节点
head.Next = pre
pre = head
head = next
//等价于 pre, head, head.Next = head, head.Next, pre
}
return pre
}
递归:
func reverseList(head *ListNode) *ListNode {
return reverse(nil, head)
}
func reverse(pre,cur *ListNode) *ListNode {
if cur == nil {
return pre
}
head := reverse(cur, cur.Next)
cur.Next = pre
return head
}
最新文章
- Android 横竖屏+碎片的应用
- Lua 性能相关笔记
- paper 132:图像去噪算法:NL-Means和BM3D
- word中公式居中、编号居右方法
- Logger
- springmvc restful配置有一个小小的坑坑
- git 最常用命令
- SpringMVC解析5-DispatcherServlet逻辑细节
- bitmap格式分析
- hadoop开发环境-----eclipse
- Ubuntu下安装JDK图文详解
- VS2012 利用正则统计项目代码行数
- A - FatMouse' Trade
- 【自制工具类】Java删除字符串中的元素
- VS 2017 发布:由于构建错误,发布失败
- 【NOIP2009】【CJOJ1687】【洛谷1074】靶形数独
- maven隐式依赖引起的包冲突
- ambari2.6.1汉化记录
- poj3162
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
热门文章
- 深入理解vue的watch
- 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
- Date类与日期格式
- nacos-docker安装nacos并配置数据库
- Anaconda的CondaHTTPError问题
- Android Linker简介
- 基于AOP和ThreadLocal实现的一个简单Http API日志记录模块
- [bzoj4823][洛谷P3756][Cqoi2017]老C的方块
- java面试| 精选基础题(3)
- C# winform 弹框提示内存不足