题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
1.设置一个pre节点,是为了当前节点指向前一个节点
2.如果当前节点不为null,我们就把当前节点的下一个节点做保存,将当前节点cur的前一个节点pre赋值给当前节点cur的下一个节点cur.next,那么此时原有的链表指向(a->b)就变成了(b->a),但是此时还需要做一些收尾操作,否则下次循环还是与这次的循环点是在同一个地方,那么我们就要将当前节点赋值给前一个节点pre,那么当前节点同时也得后移一位
*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode pre = null;
ListNode cur = head;
//----------------以上为第一部分----------------------------------------------
while(cur != null){
ListNode curNext = cur.next;
cur.next = pre;
pre = cur;
cur = curNext;
}
//----------------以上为第二部分----------------------------------------------
return pre;//此处返回pre,是因为我们要返回以原链表末尾为首的节点,此时cur已经为null,所以只能返回pre
}
}
#链表类型#
360集团公司福利 409人发布