给你单链表的头节点 head ,请你反转链表,并返回反转后的链表
思路是将每一个节点的 next都指向它的前一个节点 ,我们使用三指针(其实就是双指针)。
第一个指针pre指向当前节点的前一个节点,第二个指针cur指向当前节点,第三个指针next指向当前节点的后一个节点。然后将三个指针整体向后移动。
class Solution {
public ListNode reverseList(ListNode head) {
if(head == null)
return head;
ListNode pre = null;
ListNode cur = head;
ListNode next = null;
while( cur != null){
next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
return pre;
}
}