题解 | #反转链表#

反转链表

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
    }
}

#链表类型#
全部评论

相关推荐

07-02 13:52
武汉大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务