翻转一个链表
- 样例:
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
思路:必须要有三个节点。cur,一个保存下一次要访问的节点,before,一个是这一次断开的哪个节点,last是断开的这个点before要连接到的那个点。
public class Solution {
/**
* @param head: The head of linked list.
* @return: The new head of reversed linked list.
*/
public ListNode reverse(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode cur=head;
ListNode last=null;
ListNode before=null;
while(cur!=null){
last=before;
before=cur;
cur=cur.next;
before.next=last;
}
return before;
}
}