0

給定二叉搜索樹(BST)。迭代查找二叉查找樹的最大深度。尋找二元搜索樹(BST)的最大深度

我知道使用queue [level order traversal]的方法,但時間複雜度是O(N),因爲我們需要訪問整個樹。 但它不使用樹是BST還是二叉樹的信息。

算法對於BST是否保持不變?或者可以使用給定樹是BST的事實來改進算法嗎?

回答

1

我不認爲樹是BST或不改變任何東西的事實,你仍然不得不在最壞的​​情況下訪問所有節點,這使得它成爲O(N)。我想在最好的情況下,你只需要做O(log(N)),但這是最好的情況,你只需沿着樹的深度走,並且不會訪問其他節點。

+0

什麼意思是「在最好的情況下,你只需要做O(log(N))」?這是否意味着樹是自我平衡的? –

+0

是的,當你不得不在任何層次上訪問從左到右的任何節點時,你會有O(log(N))。 –