From b866303d73268bcbd2e70a0886d71910a787fa7b Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:07 +0800 Subject: [PATCH] =?UTF-8?q?Update=206.=20=E4=BB=8E=E5=B0=BE=E5=88=B0?= =?UTF-8?q?=E5=A4=B4=E6=89=93=E5=8D=B0=E9=93=BE=E8=A1=A8.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新递归法代码并补充清空临时列表逻辑,在头插法部分补充修改原链表结构及使用场景的说明,并完成部分标点文字校对。 --- notes/6. 从尾到头打印链表.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/notes/6. 从尾到头打印链表.md b/notes/6. 从尾到头打印链表.md index 6c1d7582..ea083148 100644 --- a/notes/6. 从尾到头打印链表.md +++ b/notes/6. 从尾到头打印链表.md @@ -14,12 +14,13 @@ ### 1. 使用递归 -要逆序打印链表 1-\>2-\>3(3,2,1),可以先逆序打印链表 2-\>3(3,2),最后再打印第一个节点 1。而链表 2-\>3 可以看成一个新的链表,要逆序打印该链表可以继续使用求解函数,也就是在求解函数中调用自己,这就是递归函数。 +要逆序打印链表 1-\>2-\>3(3,2,1),可以先逆序打印链表 2-\>3(3,2),最后再打印第一个节点 1。而链表 2-\>3 可以看成一个新的链表,要逆序打印该链表可以继续使用求解函数,也就是在求解函数中调用自己,这就是递归函数。 ```java private ArrayList tmp = new ArrayList<>(); public int[] reverseBookList(ListNode head) { + tmp.clear(); recurse(head); int[] ret = new int[tmp.size()]; for (int i = 0; i < ret.length; i++) @@ -55,6 +56,8 @@ node1.next = node2;

+需要注意的是,头插法直接修改了原链表的 next 指针,调用之后原链表的顺序被反转;不允许修改输入时用递归或栈。 + ```java public int[] reverseBookList(ListNode head) { // 头插法构建逆序链表