1.题目描述
2.思路
使用迭代法
(1)定义一个前指针
(2)然后定义两个变量 curr(head),curr.next。
(3)curr和curr.next交换位置(只要当前指针不为空,执行两两交换)
3.代码实现
/*** 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) {//假设链表为 1→2→3→∅,我们想要把它改成 ∅←1←2←3ListNode prev=null;ListNode curr=head;while(curr!=null){//定义一个next指针,存储临时变量ListNode next=curr.next;curr.next = prev;prev = curr;curr = next;}return prev;}
}