翻转一个单向链表
思路:如果链表为空或者只有1个元素,那么直接返回头结点;否则,用pre代表新的头结点,用next辅助记录下下一个将要访问的结点,来实现链表的翻转
class Solution {
public ListNode reverse(ListNode head) {
if(head==null||head.next==null)
return head;
ListNode pre=null;//首先pre为空,因为此时新链表还没有元素
ListNode next=null;
while(head!=null){
next=head.next;//记录下将要处理的结点位置
head.next=pre;//将当前结点插入到新链表头部
pre=head;//更新新链表的头节点
head=next;//指向下一个要处理的结点
}
return pre;//返回新链表的头结点
}
}