Reverse a singly linked list.
单向链表是个难点。
一开始用栈来做,结果报了内存超过了。
后来想到用指针来做。
保存第二个元素的下一个节点,让他们依次反序指向即可
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
if(head==null || head.next==null) return head;
ListNode pos1=head;
ListNode pos2=head.next;
ListNode begin=pos2.next;
pos2.next=pos1;
pos1.next=null;
while(begin!=null){
ListNode tmp=begin.next;
begin.next=pos2;
pos1=pos2;
pos2=begin;
begin=tmp;
}
return pos2;
}
}
最后晒一下蛮开心,难得写的这么靠前