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);
        }
    }
    
  • 相关阅读:
    最新Linux系统Ubuntu16.04搭建HUSTOJ(LAMP环境)
    deepin下codeblocks更改调试终端
    UVA
    POJ3436 ACM Computer Factory【EK算法】
    HDU4738 Caocao's Bridges【强连通】
    HDU4685 Prince and Princess【强连通】
    HDU4635 Strongly connected【强连通】
    POJ3177 Redundant Paths【双连通分量】
    HDU1233 还是畅通工程【最小生成树】
    3D正方体
  • 原文地址:https://www.cnblogs.com/mapoos/p/13620814.html
Copyright © 2011-2022 走看看