![]() |
1
3
一种方法是在递归调用中包含访问节点的集合。如果你在一个周期之前被拜访。
|
![]() |
2
0
您可以展开树结构,方法是将每个元素放在堆栈或队列上,并在集合有项时弹出其中的项。在while循环中,您将每个项的子项放在队列中。 如果您关心树中项目的级别,您可以使用存储该级别的helper对象。
展开树时,您可以将每个项放在新列表中,并将其用作循环问题的参考。 |
![]() |
3
0
如果你能a)消除想要循环引用的可能性,b)保证所有的子级在父级被创建时都已经知道,那么这是一个让子级成为 不变的 仅通过构造函数设置的集合。 这就给了你一个类,通过结构递归,你知道它不能包含任何循环,不管整个结构有多大。比如:
|