题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head == null) {//当前为空
            return null ;
        }
        if(head.next == null) {//当前节点是最后一个结点,反转之后就是自己
            return head ;
        }
        ListNode next = head.next ;//记录反转之前,当前节点的后一个结点
        ListNode postRev = ReverseList(head.next) ;//把当前节点之后的链表反转,返回反转之后的头结点
        head.next = null ;//重要,当前节点成为最后一个结点,将其next指针置null
        next.next = head ;//反转前记录的当前节点后一个节点,在反转之后成为了当前节点前一个节点
        return postRev ;
    }
}

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 16:22
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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