题解 | #反转链表#

反转链表

https://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 || head.next == null) {
            return head;
        }
        ListNode cur = head;
        ListNode next = head.next;
        ListNode res = ReverseList(next);
        ListNode resNext = res;
        cur.next = null;
        while (resNext.next != null){resNext = resNext.next;}
        resNext.next = cur;
        return res;
    }
}

主要使用递归来实现,首先记录当前链表的头节点,然后将next继续调用此反转的方法,直到最后一个节点,递归方法返回后,将当前节点设置在res的最后一个节点的next上,并将当前节点的next置空。自己的一个思路,不喜勿喷

#在找工作求抱抱##软件开发薪资爆料#
全部评论

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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