image.png

image.png
重点在于递归的方法返回到上一个栈后,当前栈的head节点的next还是指向节点2的。

head.next.next =head

image.png

image.png

  1. /**
  2. * 递归实现
  3. */
  4. public ListNode reverseList(ListNode head) {
  5. if (head == null || head.next == null) {
  6. return head;
  7. }
  8. ListNode rev = reverseList(head.next);
  9. head.next.next =head;
  10. head.next = null;
  11. return rev;
  12. }