zoukankan      html  css  js  c++  java
  • 1305. All Elements in Two Binary Search Trees (M)

    All Elements in Two Binary Search Trees (M)

    题目

    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].

    题意

    将两个BST中的值合并并排序。

    思路

    先用中序遍历取出每个BST中值得有序序列,再归并。


    代码实现

    Java

    class Solution {
        public List<Integer> getAllElements(TreeNode root1, TreeNode root2) {
            List<Integer> ans = new ArrayList<>();
            List<Integer> list1 = new ArrayList<>(), list2 = new ArrayList<>();
            inorder(root1, list1);
            inorder(root2, list2);
            int i = 0, j = 0;
            while (i < list1.size() || j < list2.size()) {
                if (i == list1.size() || j < list2.size() && list1.get(i) >= list2.get(j)) {
                    ans.add(list2.get(j++));
                } else {
                    ans.add(list1.get(i++));
                }
            }
            return ans;
        }
    
        private void inorder(TreeNode root, List<Integer> list) {
            if (root == null) {
                return;
            }
    
            inorder(root.left, list);
            list.add(root.val);
            inorder(root.right, list);
        }
    }
    
  • 相关阅读:
    Philosopher(set 线段树合并)
    [NOI2013]书法家
    [NOI2013]树的计数
    [NOI2013]向量内积
    对于有关东方的题目的整理。。
    BZOJ 1412: [ZJOI2009]狼和羊的故事
    BZOJ 1877: [SDOI2009]晨跑
    BZOJ 2039: [2009国家集训队]employ人员雇佣
    BZOJ 1934: [Shoi2007]Vote 善意的投票
    BZOJ 1070: [SCOI2007]修车
  • 原文地址:https://www.cnblogs.com/mapoos/p/13620814.html
Copyright © 2011-2022 走看看