二叉树搜索树范围和

此博客链接: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);
    }
}

猜你喜欢

转载自www.cnblogs.com/ping2yingshi/p/12966745.html