如果存在的话,我想要找到T的一个鞍点(binary tree)。鞍点的值在其所有祖先中是最小的,在其所有后代中是最大的。如果叶子节点的值比其所有祖先都要低,那么它可以是这样的鞍点。
示例树:
F:15
E:16 H:17
B:14 G:16 I:8
A:8 C:7
D:5
B是一个鞍点,因为14小于16和15,但也大于8、7和5。A、C、D和I是其他的鞍点。
我试图想出一种递归检查每个子树并证明父节点是其所有后代中的最大值的方法。但是,由于C(16)是其所有后代中的最大值,但大于F(15),因此这种方法是不正确的。
那么解决它的最佳方法是什么?