【发布时间】:2011-12-29 05:32:14
【问题描述】:
我看到了这个问题:Given a binary search tree and a number, find a path whose node's data added to be the given number.。
上面说给定一个二叉搜索树和一个数字,查找是否存在从根到叶的路径,使得路径上的所有数字加起来就是给定的数字。
该线程上的每个人似乎都知道执行此操作的递归方式。
我错过了什么吗?你如何递归地解决这个问题?你必须暴力破解整棵树吗?
有人可以就如何做到这一点给出一个大纲(粗略的想法)吗?
【问题讨论】:
-
树排序了吗?如果不是,那么蛮力是唯一实际的选择。给定一个排序树,您可以通过消除任何会使您超出所需总数的“右手”分支来进行某些优化。
-
为什么不直接问原帖呢?他声称知道该怎么做。
-
@MarcB:二叉搜索树按定义排序
-
如果树只包含 +ve 数字,这很简单。只需进行深度优先遍历,从根开始跟踪当前总和。一旦你超过目标,然后回溯。不确定如何将其扩展到 -ve 数字。
标签: algorithm binary-tree binary-search binary-search-tree