问题描述:
Given two binary search trees root1 and root2.
Return a list containing all the integers from both trees sorted in ascending order.
Example:
Input: root1 = [2,1,4], root2 = [1,0,3]
Output: [0,1,1,2,3,4]
思路1:首先想到的当然是一个先序遍历得到两个ascending数组,然后再合并两个ascending数组。
时间复杂度O(nlogk),空间复杂度为O(n+k)。
为了降低空间复杂度和申请的内存空间。先序遍历二叉树的结果就是将每一个最左子树的右子树展开,相连。
于是有了如下方案:
1 | class Solution { |
这里思路比较容易想明白,但是这里需要用到一个引用。
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。
引用在声明的时候就必须初始化。
但是不知道为什么Java就可以 https://leetcode.com/problems/all-elements-in-two-binary-search-trees/discuss/465183/One-pass-O(n)-time-using-stack-(easy-to-understand)