<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>