1. 题目
翻转一个链表
2. 思路
涉及三个节点的关系 前一节点,当前节点,下一节点
打比方说是
A -> B -> C
此时想要变成
A <- B <- C
显而易见,直觉会很容易想到让B->next
去指向A
但直觉有时候往往容易出错,如果第一步就让B->next
去指向A,那么就会丢失B与C之间的联系
所以在让B指向A之前,我们必须先保存好C节点地址
然后就是代码实现了
function ReverseList(pHead) {
var curNode = pHead
var preNode = null
while(curNode) {
nextNode = curNode.next
// 当前结点next指向上一个节点
curNode.next = preNode
// 节点循环体后置
preNode = curNode
curNode = nextNode
}
return preNode
}