/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
//当前节点,作为循环变量
ListNode currentNode = head;
//临时变量,中间转换使用
ListNode temp = null;
//下一个节点,不一定用到
ListNode nextNode = null;
//上一个节点,不一定用到
ListNode pre = null;
//结果
ListNode ans = null;
while (currentNode != null) {
//保存当前节点的下一个节点,指针下一次要移动到下一个节点
temp = currentNode.next;
//如果当前节点的下一个节点为空,说明到了链表的最后一个节点
if (temp == null) {
ans = currentNode;
}
//将当前节点的指针反向
currentNode.next = pre;
//前一个指针后移
pre = currentNode;
//当前指针后移
currentNode = temp;
}
return ans;
}
}