头插法解题思路:

头插法思路:

指针指向链表的头节点,反转指针的下一个节点

反转步骤:

  1. 指pHead指向第一个节点,指针pre指向待反转节点的上一个节点
  2. 使用临时变量存储待反转节点cur=pre.next
  3. 将cur节点从链表中取出:pre.next=cur.next
  4. 将cur放置到第一个节点cur.next=pHead
  5. head指向cur
public class Solution {
    public ListNode ReverseList(ListNode head) {
        ListNode pHead = head;
        ListNode pre = head;
        ListNode cur;
        if(head==null){
            return null;
        }
        while(pre.next!=null){
            cur=pre.next;
            pre.next=cur.next;
            cur.next=pHead;
            pHead=cur;
        }
        return pHead;
    }
}