实现方式:迭代
链表类
public class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
思路
在遍历链表时,将当前节点的next指针改为指向前一个节点。由于节点有没有引用其前一个节点,因此必须存储前一个节点。在更改引用之前,还需要存储后一个节点,最后返回新的头引用
题解
class Solution{
public ListNode reverseList(ListNode head){
ListNode prev = null;
ListNode curr = head;
while(curr != null){
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
}