【发布时间】:2015-07-19 01:57:23
【问题描述】:
是否可以创建一个对该递归级别唯一的变量,以便无论其他递归步骤如何,无论发生什么都将保持这种状态?并且这可以通过递归完成后在每个递归步骤中检索变量中的值的方式来完成吗?
让我用一个例子来形象化这个问题。假设我有一棵树。我想记录每个节点的深度级别,并对其进行组织,以便每个深度级别的所有节点都捆绑在同一个数组或列表中。所以我需要为每个深度级别使用不同的数组/列表。
我正在递归遍历树。在每次递归开始时,我都会创建一个新列表。 这是同一行,因此每次递归都会创建一个具有相同名称的列表变量。 我正在处理深度 X 中的一个节点。我将此节点添加到列表中,然后(递归地)继续到子节点在深度 X + 1。我将此子节点添加到新列表中。以此类推,直到树中的所有节点都属于某个列表。
递归完成后,我希望列表的数量等于树的高度(每个深度 1 个列表,包含该深度中的所有节点),以及访问所有节点中所有节点的方法列表。
这可能吗?
【问题讨论】:
-
timestamp怎么样 -
递归方法中的局部变量对于该特定调用来说是唯一的。
-
akhil,我担心在您的情况下,先前递归中的变量会以某种方式被覆盖或丢失。我这样想对吗?
-
您只需要在调用递归方法之前声明一个列表列表,并将列表作为参数传递给递归方法。从方法调用返回后,列表应该仍然包含您需要的所有信息。
-
与其尝试和玩这些东西,不如尝试设计一个相关的数据结构,你不觉得吗?