一 问题
二 代码
//方法一
var reverseList = function(head) {
//如果链表为空,返回链表
if(head===null) return head;
//定义反转链表的头结点
//第一个节点的值初始化为原链表第一个节点的值,之后每次往这个节点前插入新节点
let newhead=new ListNode(head.val);
//p节点用来遍历原链表
let p=head.next;
while(p){
//生成一个新节点
let q=new ListNode(p.val);
//将新节点插入链表头部
q.next=newhead;
newhead=q;
//p后移,准备下一轮插入新节点
p=p.next;
}
return newhead;
};
//方法二
var reverseList = function(head) {
let p=null;
//从头开始遍历链表节点
let temp=head;
while(temp){
let post=temp.next;
temp.next=p;
p=temp;
temp=post;
}
return p;
};