【剑指offer】15 反转链表
题目地址:反转链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
题目示例
输入:
{1,2,3}
返回值:
{3,2,1}
解法分析
反转链表可以考虑使用两个结点pre和next分别记录当前节点的前一个节点和后一个结点。
当前节点不为空时,进入循环,先记录当前节点的下一个节点next的位置,再让当前节点的指针指向pre。之后结点右移,直到当前节点为空跳出循环,返回pre即可。
代码
1 function ReverseList(pHead) 2 { 3 // write code here 4 if(pHead == null || pHead.next == null){ 5 return pHead; 6 } 7 var pre = null; 8 var next = null; 9 while(pHead != null){ 10 next = pHead.next; 11 pHead.next = pre; 12 pre = pHead; 13 pHead = next; 14 } 15 return pre; 16 }
执行结果