我意识到通用图上 BFS 和 DFS 的运行时间是 O(n+m),其中 n 是节点数,m 是边数,这是因为必须考虑每个节点的邻接列表。但是,BFS 和 DFS 在二叉树上执行时的运行时间是多少?我相信它应该是 O(n) 因为可以离开节点的可能边数是恒定的(即 2)。请确认这是否是正确的理解。如果不是,那么请解释一下二叉树上 BFS 和 DFS 的正确时间复杂度是多少?
问问题
25711 次
我意识到通用图上 BFS 和 DFS 的运行时间是 O(n+m),其中 n 是节点数,m 是边数,这是因为必须考虑每个节点的邻接列表。但是,BFS 和 DFS 在二叉树上执行时的运行时间是多少?我相信它应该是 O(n) 因为可以离开节点的可能边数是恒定的(即 2)。请确认这是否是正确的理解。如果不是,那么请解释一下二叉树上 BFS 和 DFS 的正确时间复杂度是多少?