繁体   English   中英

在BST边缘查找节点

[英]Find nodes at the edge of a BST

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)

我正在考虑使用堆栈来存储节点的密钥。 但是似乎我在弹出和比较以找到最大/最小对象时遇到了麻烦。 那么,您能帮我想到什么更好的解决方案吗?

执行级别顺序遍历(使用队列)。

每次出队时,对于您所处的级别,请检查其是否是您到目前为止已记录的最小值或最大值。

在检查最小和最大值时,请确保root的root.left和root.right都不为NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM