思路

借用新链表,依次将节点挂在新链表的表头

步骤

  1. 创建新链表newList
  2. while(链表不为空)
    1. 记录当前节点的下一节点为tmp
    2. 将新链表newList挂在当前节点后
    3. 修改新链表的头结点为当前节点
    4. 修改原链表的头结点为tmp
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        // 创建新链表
        ListNode newList = null;
        while(head!=null){
            // 记下后面的链表
            ListNode tmp = head.next;
            // 将新链表挂在当前节点后面
            head.next = newList;
            // 修改新链表的头结点
            newList = head;
            // 修改原链表的头结点
            head = tmp;
        }
        return newList;
    }
}