2019/12/6

Posted jovesun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019/12/6相关的知识,希望对你有一定的参考价值。

Leetcode_938

题目描述:BST中查找在区间 [ L,R ] 中的元素和

我的解法:前序遍历,逐个检查,计算求和,递归实现。

部分代码:

void PreOrder(TreeNode* root,int L,int R,int &sum){
    if (root == NULL)
        return;
    PreOrder(root->left,L,R,sum);
    if (root->val >= L && root->val <= R)
        sum+=root->val;
    PreOrder(root->right,L,R,sum);
 }

题后反思:对于BST,没必要逐个检查,sub_root->val < L, 那么PreOrder(sub_root->right, L, R); 如果sub_root->val > R, 那么PreOrder(sub_root->left, L, R);

     否则,返回sub_root->val + PreOrder(sub_root->left, L, R) + PreOrder(sub_root->right , L, R);

完善代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
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);
        else if (root->val > R)
            return rangeSumBST(root->left,L,R);
        else
            return root->val+rangeSumBST(root->left,L,R)+rangeSumBST(root->right,L,R);
    }
};

今天是刷题第一天呢  *-*

以上是关于2019/12/6的主要内容,如果未能解决你的问题,请参考以下文章

2019,12,6 随笔王菲

统计学 梁佳妮 2019.12.6

毕设计划

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js