让int的二进制搜索树创建小于给定整数的所有整数的链表x值。查找二进制搜索树中小于给定值的所有值的算法
我试过了吗?
1)残酷溶液(低效)
一种inorder访问的BST的,我插入列表中的一个节点对于int的的Bst, 每个整数,然后我释放从开始列表的每个节点X
2)更有效,但错误
我进行搜索,当我发现X,我创建一个列表与节点的左儿子的有序参观,我已经找到了X 。
很明显错误,例如考虑后续BST:
10
/\
9 11
/ \
5 15
/\ /\
1 8 13 19
/\
12 14
与此解决方案,如果x = 15我只考虑{12,13,14},它会工作只是为X =根。
问题是我该怎么办?
我不明白。为什么你甚至插入大于* x *的数字到1)中的列表中? – svick
因此,当我遇到** x **时,我只需要返回? – newbie
为什么不修改inorder遍历,以便在当前节点= x时不遍历右边的子树? (Ofc调用从根开始修改) –