/**
* Definition for singly-linked list.
* 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; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
// 设置一个空节点
ListNode prev = null;
// 设置当前节点并赋值为传进来的 head 节点
ListNode curr = head;
// 循环把正向链表逆过来
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
// 返回反转后的链表
return prev;
}
}
leetcode原题: 206. 反转链表
采用迭代的方式,为了实现把 1→2→3→∅ 改成 ∅←1←2←3,首先设置一个空节点,并把当前节点并赋值为传进来的 head 节点,循环将链表的指向全部反转过来,达到反转的目的。