会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员,或
购买
该题目所属题库
,可解锁完整内容。
解题思路
本题要求在二叉搜索树(BST)中,按闭区间 [low, high] 统计账户编号之和,并将结果乘以 100(因为存款=账户编号×100)。核心利用 BST 的有序性进行“剪枝”搜索(Range Sum in BST):
- 若当前结点值
v < low,则整棵左子树都小于区间下限,不可能贡献答案,只需进入右子树;
- 若
v > high,则整棵右子树都大于区间上限,不可能贡献答案,只需进入左子树;
- 若
low ≤ v ≤ high,则当前结点贡献 v,左右子树都可能有贡献,继续分别遍历。
算法可以用递归或显式栈的迭代实现。为避免栈溢出及只使用基础语法,这里给出显式栈迭代版本。最终把区间内编号和乘以 100 即为区间存款总额。