使用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;
}
}