使用3个指针,空间时间耗时都在O(n)以内
提交代码
class Solution {
public ListNode reverseList(ListNode head) {
if(head==null||head.next==null) return head;
ListNode dummy=new ListNode(-1);
dummy.next=head;
ListNode trueTail=head,curHead=head.next, dummyNext=dummy.next;
while(trueTail.next!=null) {
dummyNext=dummy.next;
dummy.next=curHead;
trueTail.next=curHead.next;
curHead.next=dummyNext;
curHead=trueTail.next;
}
return dummy.next;
}
}
运行结果

本文介绍了一种使用三个指针实现的链表逆序算法,该算法在O(n)的时间和空间复杂度内完成链表的逆序操作。通过定义虚拟头节点、当前节点和真实尾节点,算法能够高效地进行链表逆序。
839

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



