我有以下问题,但没有答案。如果我的方法正确,我将不胜感激:
问:在二叉搜索树中搜索键值60时,遍历包含键值10、20、40、50、70、80、90的节点,而不必按给定的顺序进行。从包含值60的根节点开始的搜索路径中,这些键值可以出现多少种不同的顺序?
(A)35(B)64(C)128(D)5040
从这个问题中,我了解到遍历必须包括所有给定的节点,最终我们必须达到键60。例如,这样的组合之一是:
10、20、40、50、90、80、70、60。
由于我们必须遍历上面给出的所有节点,因此我们必须从10或90开始。如果我们从20开始,我们将不会达到10(因为60> 20并且将遍历20的右子树)
同样,我们不能从80开始,因为我们将无法达到90,因为80> 60,我们将在80的左子树中遍历,因此无法达到90。
取10。剩余的节点为20、40、50、70、80、90。下一个节点可以为20或90。出于前面提到的相同原因,我们不能取其他节点。
如果我们以相似的方式考虑,则在每个级别我们都有两个选择。由于有7个节点,因此前6个有2个选择,最后1个没有选择。所以完全有
排列= = 64
这是正确的答案吗?
如果没有,更好的方法是什么?
我想概括一下。如果给出节点,则总共可能的搜索路径为2 n − 1