解题思路
主要就是使用三个指针。以链表的初始结构为1–2--3–4--5为例说明,变化的过程是:
状态1:1–2--3–4--5
状态2:2–1--3–4--5
状态3:3–2--1–4--5
状态4:4–3--2–1--5
状态5:5–4--3–2--1
提交代码
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null||head.next==null) return head;
ListNode dummy=new ListNode(-1);
dummy.next=head;
ListNode p1=dummy,p2=dummy,tail=head;
while(p2!=null) {
p1=tail.next;
p2=p1.next;
tail.next=p2;
p1.next=dummy.next;
dummy.next=p1;
}
return dummy.next;
}
}
运行结果

本文详细介绍了一种链表逆序反转的算法实现,通过三个指针操作,逐步将链表节点顺序反转,最终实现链表逆序。文章提供了详细的解题思路及代码示例。

被折叠的 条评论
为什么被折叠?



