题解 | #反转链表#
反转链表
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 } }#链表类型#