剑指offer15-反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
const ReverseList= phead => {
if(phead === null || phead.next === null) return phead;
let prev = null;
let next = null;
while(phead !== null){
next = phead.next;
phead.next = prev;
prev = phead;
phead = next;
}
return prev;
};
本题类型:链表
解析:
将链表反转其实只需要改变每个位置链表的指向。常规操作链表指向的反转需要四步:
- 将第二个数值取出缓存;
- 将指针指向一个空位置;
- 将第一个数值放在第2步的空位置上;
- 将第1步取出的数值放在初始位置。