前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >LeetCode149|两棵二叉搜索树中的所有元素

LeetCode149|两棵二叉搜索树中的所有元素

作者头像
码农王同学
发布2021-01-15 10:56:08
发布2021-01-15 10:56:08
40900
代码可运行
举报
文章被收录于专栏:后端Coder后端Coder
运行总次数:0
代码可运行

一,两棵二叉搜索树中的所有元素

1,问题简述

给你 root1root2 这两棵二叉搜索树。

请你返回一个列表,其中包含 「两棵树」 中的所有整数并按 「升序」 排序。

2,示例描述

代码语言:javascript
代码运行次数:0
复制
      

输入:root1 = [2,1,4], root2 = [1,0,3] 输出:[0,1,1,2,3,4] 示例 2: 输入:root1 = [0,-10,10], root2 = [5,1,7,0,2] 输出:[-10,0,0,1,2,5,7,10] 示例 3: 输入:root1 = [], root2 = [5,1,7,0,2] 输出:[0,1,2,5,7] 示例 4: 输入:root1 = [0,-10,10], root2 = [] 输出:[-10,0,10] 提示: 每棵树最多有 5000 个节点。 每个节点的值在 [-10^5, 10^5] 之间。

3,题解思路

深度优先搜索,数组排序操作

4,题解程序

代码语言:javascript
代码运行次数:0
复制

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class GetAllElementsTest3 {
    public static void main(String[] args) {
        TreeNode t1 = new TreeNode(2);
        TreeNode t12 = new TreeNode(1);
        TreeNode t13 = new TreeNode(4);

        TreeNode t2 = new TreeNode(1);
        TreeNode t21 = new TreeNode(0);
        TreeNode t22 = new TreeNode(3);
        t1.left = t12;
        t1.right = t13;

        t2.left = t21;
        t2.right = t22;
        getAllElements(t1, t2);

    }

    public static List<Integer> getAllElements(TreeNode root1, TreeNode root2) {
        List<Integer> list = new ArrayList<>();
        if (root1 == null && root2 == null) {
            return list;
        }
        List<Integer> root1List = new ArrayList<>();
        List<Integer> root2List = new ArrayList<>();
        dfsRoot1(root1, root1List);
        dfsRoot1(root2, root2List);
        root1List.addAll(root2List);
        Collections.sort(root1List);
        return root1List;

    }

    private static void dfsRoot1(TreeNode root1, List<Integer> root1List) {
        if (root1 == null) {
            return;
        }
        if (root1.left != null) {
            dfsRoot1(root1.left, root1List);

        }
        root1List.add(root1.val);
        if (root1.right != null) {
            dfsRoot1(root1.right, root1List);
        }

    }
}

5,总结一下

根据深度优先搜索,获取每棵树的节点数据,进行排序

历史文章目录

数据结构:王同学下半年曾写过的JDK集合源码分析文章汇总

算法汇总:leetcode刷题汇总(非最终版)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,两棵二叉搜索树中的所有元素
    • 1,问题简述
    • 2,示例描述
    • 3,题解思路
    • 4,题解程序
    • 5,总结一下
    • 历史文章目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档