如果我有一个使用这样的堆栈的树遍历算法:
input: root
push root onto stack
while stack not empty:
pop current node off stack
mark current as visited
for each of current node's successors:
if successor not visited:
push successor onto stack
是否有一种简单的方法可以修改此算法以获得树的最大深度?如果我使用递归,我可以想到如何做到这一点,但我有点想到如何使用堆栈方法来做它。
答案 0 :(得分:3)
您可以将节点及其深度推到堆栈上,然后跟踪到目前为止看到的最大深度。
go func(i int) {
defer wg.Done()
f[i]()
}(a)