我想找到T,二叉树的鞍点,如果有的话。鞍点在其所有祖先中具有最小值,但其所有后代中具有最大值。如果叶子的价值低于其祖先的价值,那么叶子可以是一个鞍点。使用递归在二叉树中找到鞍点
例树:
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,和我是其他鞍点。
我试着想办法递归地检查每个子树,并证明父节点是其所有后代中最大的。但是,由于C(16)在它的所有后代中是最大的,但是大于F(15),所以它不是鞍点,所以这种方法是不正确的。
什么是最好的解决方法。
A,B,C,I是鞍点。 – BBbbBB 2015-02-10 19:26:06
是的,A,B,C,I,D。抱歉。 – BBbbBB 2015-02-10 19:58:34