此博客链接:https://www.cnblogs.com/ping2yingshi/p/12966745.html
二叉搜索树的范围和(45min)
题目链接:https://leetcode-cn.com/problems/range-sum-of-bst/submissions/
题解:
题意:给一个范围L,R,求树中大于L,小于R的和。
思路:
使用递归。
1.判断树中的节点是否大于L,如果大于L,则求和,如果小于L,则递归该节点的右子树。
2.判断树中的节点是否小于R,如果小于R,则求和,如果大于R,则递归该节点的左子树。
代码如下:
class Solution { public int rangeSumBST(TreeNode root, int L, int R) { if(root==null) { return 0; } if(root.val<L) return rangeSumBST(root.right,L,R); if(root.val>R) return rangeSumBST(root.left,L,R); return root.val+ rangeSumBST(root.right,L,R)+rangeSumBST(root.left,L,R); } }