链表反转的代码实现方式有很多种,有使用头插法、使用多指针这两种方式通常为最优
我先介绍使用多指针的方式,下面我将用图解的方式展示如何进行链表反转:
图解
1.原数据
2.cur.next=pro
3.移动指针
pro=cur
cur=Next
ListNode Next=cur.next
4.以此类推
代码:
public ListNode reverseList(ListNode head) {
ListNode cur=head;
ListNode pro=null;
while(cur!=null)
{
ListNode Next=cur.next;
cur.next=pro;
pro=cur;
cur=Next;
}
return pro;
}