解题思路:
使用双指针+临时指针的方法来解决该问题
首先定义pre指针,初始化为空,和cur指针,初始化为头节点
步骤:
开始遍历链表,创建临时节点tmp指向cur的下一个节点,之后将cur的下一个节点指向pre节点。
此时pre节点前进到cur节点,cur节点前进到tmp节点,直至cur节点为空,此时pre节点为头节点。
将pre节点返回即可。
public ListNode reverseList(ListNode head) {
ListNode pre=null;
ListNode cur=head;
while (cur!=null)
{
ListNode tmp=cur.next;
cur.next=pre;
pre=cur;
cur=tmp;
}
return pre;
}