写出一个完整的链表反转的程序,总计在10行左右的代码,且链表是通过指针关联的,比较考验思维逻辑能力,所以在面试中是比较高频的面试题。 其核心思想是,将下一个节点指向逻辑头节点之前,最开始链表头节点是逻辑头,当执行完一遍操作后,第二个节点变为逻辑头结点,如此循环到最后。 代码如下:
function reverseList(pHead){
var head = pHead;
var currentNode;
while(pHead&& pHead.next){
currentNode = pHead.next;
pHead.next = currrentNode.next;
currentNode.next = pHead;
head = currentNode;
}
return head;
}