23张图!万字详解「链表」,从小白到大佬! (4)

LeetCode 验证结果如下图所示:

image.png


可以看出使用栈的方式来实现链表的反转执行的效率比较低。

实现方法 2:递归

同样的,我们先用图解的方式来演示一下,此方法实现的具体过程,如下图所示。

image.png

image.png


image.png


image.png


image.png


实现代码如下所示:

public static ListNode reverseList(ListNode head) { if (head == null || head.next == null) return head; // 从下一个节点开始递归 ListNode reverse = reverseList(head.next); head.next.next = head; // 设置下一个节点的 next 为当前节点 head.next = null; // 把当前节点的 next 赋值为 null,避免循环引用 return reverse; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspjgw.html