[leetcode] 1305. 两棵二叉搜索树中的所有元素 | 遍历

在这里插入图片描述

给定两棵二叉搜索树,给出两棵树上所有元素的节点值从小到大的排列

遍历树上所有的节点,然后记录结点的值
放在集合中排序后进行输出
Java_code:

class Solution {
    List<Integer> ret = new ArrayList<>();
    public List<Integer> getAllElements(TreeNode root1, TreeNode root2) {
        if(root1 != null) dfs(root1);
        if(root2 != null) dfs(root2);
        Collections.sort(ret);
        return ret;
    }
    public void dfs(TreeNode root){
        ret.add(root.val);
        if(root.left != null) dfs(root.left);
        if(root.right != null) dfs(root.right);
    }
}

cpp_code:

class Solution {
public:
    vector<int> ret;
    void dfs(TreeNode *root) {
        ret.push_back(root->val);
        if(root->left != nullptr) dfs(root->left);
        if(root->right != nullptr) dfs(root->right);
    }
    vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {
        if(root1 != nullptr) dfs(root1);
        if(root2 != nullptr) dfs(root2);
        sort(ret.begin(),ret.end());
        return ret;
    }
};
posted @ 2022-05-01 21:42  PushyTao  阅读(5)  评论(0编辑  收藏  举报  来源