<script>
const obj = {
value: 1,
next: {
value: 2,
next: {
value: 3,
next: {
value: 4,
next: {
value: 5,
next: null
}
}
}
}
}
function ReverseList(pHead) {
if (pHead === null) {
return null
}
let head = pHead;
let last = null;
function reverse(pNode) {
if (pNode.next === null) {
last = pNode;
return pNode;
} else {
let node = reverse(pNode.next);
node.next = pNode;
if (pNode === head) {
pNode.next = null
return last;
} else {
return pNode;
}
}
}
return reverse(pHead);
}
// let b = ReverseList(obj)
// console.log(b);
reverseList = function (head) {
// debugger
let prev = null, // 定义一个变量是null
curr = head // 保存原始链表
while (curr) { // 进入循坏
const next = curr.next // 吧原始值next取出来 原始链表的next
curr.next = prev //当前的next =prev
prev = curr //prev 变成了{next:null}
curr = next
}
return prev
};
let c = reverseList(obj)
console.log(c);
//链表四步走
// 1.声明一个pre 和curr prev 是null, cur 是传入的初始链表
// 2.循环 循坏条件是是否存在初始链表
// 3. 声明next next 是cur的next节点
// 4.cur的next 是prev
// 5.prev 是cur
// 6.cur 又等于next
</script>