题解 | #反转链表#
反转链表
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置空。自己的一个思路,不喜勿喷。
#在找工作求抱抱##软件开发薪资爆料#