查找BST边缘的节点

时间:2015-11-20 20:44:06

标签: c++ binary-search-tree

BST边缘的节点是节点:在相同级别节点中具有最大/最小密钥的节点。 (排除根节点和叶节点)

> Suppose we already have a BST like this:

                  --------5--------
                     -4--     -8---
                  -1-  -3-   -N-10-
                      -2-N-   -9--N-

So the nodes we need to find: 4,8,10 (don't use array/string)

我正在考虑使用堆栈来存储节点的密钥。但似乎我在弹出和比较中找到最大/最小的麻烦。你能帮我想一下更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

执行水平顺序遍历(使用队列)。

每当您出列时,对于您所处的级别,请检查它是否是您目前为止记录的最小值或最大值。

在检查最小值和最大值时,确保root不具备root.left和& root.right为NULL