LeetCode-1305. All Elements in Two Binary Search Trees

2023-10-29

Given two binary search trees root1 and root2.

Return a list containing all the integers from both trees sorted in ascending order.

 

Example 1:

Input: root1 = [2,1,4], root2 = [1,0,3]
Output: [0,1,1,2,3,4]

Example 2:

Input: root1 = [0,-10,10], root2 = [5,1,7,0,2]
Output: [-10,0,0,1,2,5,7,10]

Example 3:

Input: root1 = [], root2 = [5,1,7,0,2]
Output: [0,1,2,5,7]

Example 4:

Input: root1 = [0,-10,10], root2 = []
Output: [-10,0,10]

Example 5:

Input: root1 = [1,null,8], root2 = [8,1]
Output: [1,1,8,8]

 

Constraints:

  • Each tree has at most 5000 nodes.
  • Each node's value is between [-10^5, 10^5].

题解:

/**
 * 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:
    void getNum(TreeNode * &root, vector<int> &v) {
        if (root != NULL) {
            getNum(root->left, v);
            v.push_back(root->val);
            getNum(root->right, v);
        }
    }
    vector<int> getAllElements(TreeNode* root1, TreeNode* root2) {
        vector<int> a, b, res;
        getNum(root1, a);
        getNum(root2, b);
        int l1 = a.size(), l2 = b.size();
        int k1 = 0, k2 = 0;
        while (k1 != l1 && k2 != l2) {
            if (a[k1] < b[k2]) {
                res.push_back(a[k1++]);
            }
            else {
                res.push_back(b[k2++]);
            }
        }
        if (k1 == l1) {
            while (k2 != l2) {
                res.push_back(b[k2++]);
            }
        }
        if (k2 == l2) {
            while (k1 != l1) {
                res.push_back(a[k1++]);
            }
        }
        return res;
    }
};

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode-1305. All Elements in Two Binary Search Trees 的相关文章

  • unity中的碰撞和触发事件

    首先 unity中两个游戏对象发生碰撞的条件 1 两个游戏对象必须都有Collider碰撞器这个组件 2 至少有一个游戏对象包含刚体组件 3 两个游戏对象有相对运动 还应该知道跟碰撞事件相关的3个函数 void OnColliderEnte
  • 【Python】近似熵,样本熵,模糊熵计算高效版

    文章目录 前言 整体思路 1 近似熵 Approximate Entropy ApEn 1 1 理论基础 1 2 python第三方库实现 1 3 基于多线程numpy矩阵运算实现 2 样本熵 Sample Entropy SampEn 2
  • 在React中使用Typescript

    使用命令创建项目 生成一个全新的 ts react 的模版 可直接使用指令 npm create react app my app template typescript 该模板包含了全套正常运行React所需要的的包和配置 无需再额外手动
  • 若依RuoYi-Vue代码学习一---通用分页处理

    文章目录 一 先运行看看接口到sql 二 来看看若依怎么处理的分页 三 最后回到接口 及其参数返回 一 先运行看看接口到sql 随便找个表格看看 可以看到传入了 分页关键属性 看看debug的日志打印的sql debug 137 gt Pr

随机推荐

  • 小程序酷炫3D登录页源码(泥陶态)

    小程序酷炫3D登录页源码 泥陶态 1 页面效果 登陆页面一般都要酷炫好看一点 这里分享一个泥陶态3D登录页面 泥陶态是结合 3D 设计流行风格而兴起的新形态 设计趋势由拟物风格发展为扁平风格时 去掉了一切表示深度和层叠的效果 虽然视觉上简化
  • android中Manifest.xml中的intent-filter作用

    注意 隐式启动Activity的intent到底发给哪个activity 需要进行三个匹配 一个是action 一个是category 一个是data 可以是全部或部分匹配 同样适用于Service和BroadcastReceiver 下面
  • lgvl菜单项优化

    项目场景 嵌入式CPU ASR3603S MCU 24MB ROM 16MB RAM 问题描述 功能菜单 设置菜单 菜单列表上下滑动有些慢 LVGL菜单滑动过程中卡顿感 原因分析 代码执行耗时 图片加载耗时 缓冲区太小多次刷新耗时 解决方案
  • 关于微信小程序获取头像和昵称

    不知道为什么微信一直对开发者获取 微信头像 微信昵称 一直抱以限制态度 关于接口调用方法 也是一直在修改 open type getUserInfo 在2021年4月13日停用 wx getUserInfo 在2021年4月28日停用 wx
  • 矢量网络分析仪(矢网)组成和原理简介

    一 概述 矢量网络分析仪是一种常见的射频测量仪器 主要用来测量高频器件 电路及系统的性能参数 如线性参数 非线性参数 变频参数等 1 1 分类 矢量网络分析仪一般以频率来划分 截止频率越高 价格也越贵 根据测试端口的数量可分为 双端口 3
  • oracle重新编译package,这个package为什么编译不了?该怎么解决

    SQL codecreate or replace package pack sunyard test is type refcur is ref cursor 函数名称 func sunyard test 作者 sunyard zheng
  • 阶段性学习总结

    前 言 从开学到现在 时间已过去两个月之久 这段时间 一直断断续续做js学习研究 有时候浪费了不少时间 还疑惑不断 下面就这段时间学习状况 以及相关的生活习惯做关联总结 javascripty以下简称 javascript 总体 在总结之前
  • 后台登陆万能密码总结

    1 Asp Aspx万能密码 or or or 1 1 or 1 1 or a a or a a or a a or a a or 1 1 a or 1 1 or a a or 1 or 1 1 1 1 or 1 1 or 1 1 OR 1
  • MPI并行编程——多进程程序设计

    MPI Massage Passing Interface 它不是一种语言 而是一种库描述 是消息传递函数库的标准规范 MPI标准定义了一组具有可移植性的编程接口 在Fortran和C C 中可以直接对相应的函数进行调用 MPI有很多种实现
  • 基于python的在线考试系统的设计与实现

    源码获取 点击下载 基于python的在线考试系统的设计与实现 本系统实现了在线考试网的主要功能 以无纸化的管理不但可以提高工作效率 减少监考人员数量 增强公平性等 而且可以实现学校或企业的低成本投入 高效率办公的宗旨 在线考试网 它包括有
  • Windows日志浅析

    从这篇文章开始本人开始结合Windows产品日志分析大神 RANDY FRANKLINSMITH 的电子书 以及自己的实验对Windows操作系统的日志开始分析 也是对自己的一种激励 至少希望自己能坚持下去这个分析 并且希望自己可以通过这个
  • 网易月薪25K的Linux运维面试真题曝光,值得一试!

    首先我们来看下网易Linux运维工程师招聘岗位要求 岗位定义 高级系统工程师 应用运维 岗位薪资 15K 25K 职位描述 1 负责公司运维体系的建设 组织在线移动APP和业务系统以及自建私有云的监控 维护 推进自动化运维 2 建立和完善公
  • Flink CDC 详解

    目录 一 CDC 简介 二 Flink CDC 案例实操 三 Flink CDC 2 0 四 核心原理分析 一 CDC 简介 什么是 CDC CDC 是 Change Data Capture 变更数据获取 的简称 核心思想是 监测并捕获数
  • 埋点是什么?有什么作用?前端如何埋点?

    一 什么是埋点 埋点 tracking 是指在应用程序中插入代码或工具来记录某些事件的行为和属性 例如用户在应用中的点击 浏览 购买 注册等操作行为 这些数据可以被用来分析用户行为 优化产品功能 改进用户体验等 通过埋点 开发人员可以采集用
  • SQL类型操作集合

    字符串使用汇总 将字符串中从某个字符开始截取一段字符 然后将另外一个字符串插入此处 select stuff hello world 4 4 返回值hel orld 返回从指定位置开始指定长度的字符串 select substring He
  • IP协议详解之IPv6头部结构简介

    IPv6协议是网络层技术发展的必然趋势 因为它不仅解决了IPv4地址不够用的情况 还做了很大的改进 比如 增加了多播和流的功能 为网络上多媒体内容的质量提供精细的控制 引入自动配置功能 使得局域网管理更加方便 增加了专门的网络安全功能 IP
  • 计算机网络----数据封装过程,TCP/IP 模型与OSI模型的比较,IP包头格式

    数据封装过程 应用层 上层数据 传输层 数据段segement TCP头部 上层数据 网络层 数据包package IP头部 TCP头部 上层数据 数据链路层 数据帧frame MAC头部 IP头部 TCP头部 上层数据 物理层 比特流bi
  • Python 21.opencv 霍夫直线变换

    import cv2 import numpy as np img cv2 imread lane jpg img cv2 imread pic2 PNG gray cv2 cvtColor img cv2 COLOR BGR2GRAY e
  • 一位博士的返乡笔记,深刻入骨!

    王磊光 正和岛 2023 01 24 17 15 发表于甘肃 这是一位博士 春节回家的观察和总结 从乡村到城市 是一个长久被书写的主题 其中的个人体验 其实就是城镇化历史的一部分 本文发表于2015年春节 当时人民网也转发了此文 距今已8年
  • LeetCode-1305. All Elements in Two Binary Search Trees

    Given two binary search trees root1 and root2 Return a list containing all the integers from both trees sorted in ascend