gpt4 book ai didi

java - LeetCode 中的递归和回溯是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 08:45:00 27 4
gpt4 key购买 nike

该函数将反向打印链表的节点:

void recur(ListNode head) {
if(head == null) return;
recur(head.next);
tmp.add(head.val);
}

如果列表是1 -> 2 -> 3,则tmp(一个ArrayList)将添加节点的值。

最后,我们可以通过打印tmp得到一个列表[3, 2, 1]。但是,我不知道为什么它有效。为什么 recur 函数循环到最后一个节点,然后以相反的顺序添加值?

最佳答案

我认为这个流程图可能对您有帮助。

enter image description here

从图中可以看出,仅当到达链表末尾时,head.value 才会添加到 tmp 列表中。 IE 。头变成空

关于java - LeetCode 中的递归和回溯是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61138015/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com