时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32M,其他语言64M
热度指数:824838
本题知识点: 链表
题目描述
输入一个链表,反转链表后,输出新链表的表头。
代码
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function ReverseList(pHead)
{
//反转链接即pre->1->2->3->4反转成pre<-1<-2<-3<-4
if(pHead === null) {return null;}
let head = pHead;
let next;
let pre;
//head是当前结点,如果当前结点不为null则进入循环
while(head != null){
//用next先保存head的下一个结点信息,保证单链表不会因为失去head节点的原next节点而断裂
next = head.next;
//保存好next信息,让head指向next变为head指向pre
head.next = pre;
//head指向pre后,接着反转剩下的结点
//让pre,next,head依次向后移动一个结点
pre = head;
head = next;
}
//当head为空,pre就是最后一个结点,此时链表已反转完毕,pre即反转后的第一个结点
return pre;
}