【发布时间】:2020-08-31 06:36:04
【问题描述】:
我正在遍历一棵树,想知道递归在 Trees 内部是如何工作的,因为代码看起来很简单,但是当我调试我的代码时,我很困惑它是如何工作的,因为我对 没有清楚的了解递归的工作,你能解释一下吗?看我的c#代码
public static void Traverse(Node root)
{
if (root == null) return;
Console.WriteLine(root.data);
Traverse(root.left);
Traverse(root.right);
}
【问题讨论】:
-
将方法调用的状态/上下文视为一张纸。进行方法调用时,拿一张新纸并将其放在您已经拥有的堆栈的顶部。然后,在纸的顶部写下方法的所有参数及其值,然后在纸上为所有局部变量腾出空间。浏览该方法并根据需要调整纸上的变量。如果该方法调用另一个方法,请拿一张新纸并重复。当一个方法返回时,取出并丢弃它的一张纸。仔细考虑这个心理模型,看看是否有帮助。
-
这能回答你的问题吗? Understanding recursion
标签: c# recursive-datastructures