我没有堆栈/队列快速搜索DFS / BFS。我相信我错过了一些东西。 我正在为DFS写一个小方法:
static void DFS(TreeNode41 starting) {
System.out.println(starting.value);
if (starting.left!=null && !starting.left.visited) {
DFS(starting.left);
}
if (starting.right!=null && !starting.right.visited) {
DFS(starting.right);
}
//Reached a leaf
if (starting.left == null & starting.right == null) {
//
}
}
其中TreeNode41是二进制节点,具有左右引用。当递归函数无处可去时,它甚至不需要检查已访问或未访问,它会弹出,这类似于堆栈。 此算法以DFS方式遍历二叉树。但是我觉得我错过了什么。当一个非递归地实现DFS时,是否需要堆栈数据结构?或者是,这个算法不适用于循环图或不是树的东西吗?
任何指针都将不胜感激。谢谢!