题目描述
输入一个链表,反转链表后,输出新链表的表头。
分析
反转链表详细分析如下:
代码如下:
public class Solution {
public ListNode ReverseList(ListNode head) {
//1、head就是第一个节点,先判断是否为空
if(head == null || head.next == null){
return head;
}
//2、定义三个指针pre、cur、next
ListNode pre = null;
ListNode cur = head;
//3、进行反转
while(cur != null){
ListNode next = cur.next; //事先记录每次cur的后一个节点
cur.next = pre;//cur指向pre,从cur的next指向
pre = cur;//pre后移
cur = next;//cur后移
}
return pre;//最后cur=next,next为null,跳出,返回pre
}
}