int の二分探索木を使用して、指定された整数x値より小さいすべての整数のリンク リストを作成します。
私が試したことは?
1)残忍な解決策(非効率)
BSTの 順不同の訪問、Bst のすべての整数のリストにノードを挿入し、x から始まるリストのすべてのノードを解放します。
2)より効率的だが間違っている
検索を行い、x を見つけたら、x を見つけたノードの左側の息子を順番に訪問するリストを作成します。
たとえば、次の BST を考慮すると、明らかに間違っています。
10
/ \
9 11
/ \
5 15
/ \ / \
1 8 13 19
/ \
12 14
このソリューションでは、x=15 の場合、{12,13,14} と考えます。x=root に対してのみ機能します。
質問は、どうすればよいですか?