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 条评论