反转链表,是一次笔试题,连链表都不懂是啥,怎么写呢,头痛又➕1。。。
1. 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。
剑指 Offer II 024. 反转链表
输入: head = [1,2,3,4,5]
输出: [5,4,3,2,1]
var reverseList = function(head) {
if(head==null) {
return null
}
// 当前节点
var current = head
// 当前节点的前一个指针
var pre = null
while(current){
let next = current.next
current.next = pre
pre = current
current = next
}
return pre
};
01.链表
- 单向链表:
- 节点组成 = 数据本身 + 指向下一节点指针
- 用一组任意“内存空间”(连续的或不连续的)存储数据元素
- 操作: 创建节点, 删除节点, 插入节点, 搜索/遍历节点
- 双向链表:
- 节点组成 = 数据本身 + 指向下一节点指针 + 指向上一节点指针
- 用一组任意“内存空间”(连续的或不连续的)存储数据元素
- 操作: 创建节点, 删除节点, 插入节点, 搜索/遍历节点