题解 | #反转链表#

反转链表

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置空。自己的一个思路,不喜勿喷

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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务