0
点赞
收藏
分享

微信扫一扫

1305. 两棵二叉搜索树中的所有元素

時小白 2022-05-01 阅读 22
leetcode

原题链接:1305. 两棵二叉搜索树中的所有元素

 

solution:

        二叉搜搜经过前序遍历一定是递增的序列,因此保存两颗数的递增序列,再用归并的思想合并就行

class Solution {
public:
    vector<int> r1;
    vector<int> r2;
    void inorderTraversal(TreeNode* root,vector<int> &r) {
        if(root==nullptr) return;
        if(root->left) inorderTraversal(root->left,r);
        r.push_back(root->val);
        if(root->right) inorderTraversal(root->right,r);
    }

    vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {
        inorderTraversal(root1,r1);
        inorderTraversal(root2,r2);
        vector<int> res(r1.size() + r2.size());    //定义返回值
        int i = 0,j = 0,k = 0;
        while(i < r1.size() && j < r2.size()){
            if(r1[i] <= r2[j]) res[k++] = r1[i++];
            else res[k++] = r2[j++];
        }
        while(i < r1.size()) res[k++] = r1[i++];
        while(j < r2.size()) res[k++] = r2[j++];
        return res;
    }
};

 

 

举报

相关推荐

0 条评论