思路1:前置指针,后置临时指针
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode ReverseList (ListNode head) { //头节点判空 if(head == null){ return null; } //指定一个前置节点、当前节点 ListNode pre = null; ListNode cur = head; while(cur != null){ //先把当前节点的后一个节点放入临时指针变量,防止找不到了后边 ListNode curNext = cur.next; //反转指定,当前的指向它的前方 cur.next = pre; //前一个指向往后移动 pre = cur; //当前指针往后移动 cur = curNext; } return pre; } }