这篇文章给大家分享的是有关LeetCode如何找出两棵二叉搜索树中的所有元素的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一,两棵二叉搜索树中的所有元素
1,问题简述
给你root1和root2这两棵二叉搜索树。
请你返回一个列表,其中包含「两棵树」中的所有整数并按「升序」排序。
2,示例描述
输入: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,题解程序
导入Java。乌提尔。ArrayList
导入Java。乌提尔。收藏品;
导入Java。乌提尔。列表;
公共类GetAllElementsTest3 {
公共静态void main(String[]参数){ 0
TreeNode t1=新的树节点(2);
TreeNode t12=新的树节点(1);
TreeNode t13=新的树节点(4);
TreeNode t2=新的树节点(1);
TreeNode t21=新的树节点(0);
TreeNode t22=新的树节点(3);
t1.left=t12
t1.right=t13
t2 .左侧=t21
t2.right=t22
getAllElements(t1,T2);
}
公共静态列表整数getAllElements(树节点根1,树节点根2){ 0
list整数list=new ArrayList();
if(根1==null根2==null){ 0
退货清单;
}
list整数根1 list=new ArrayList();
list整数根2 list=new ArrayList();
dfsRoot1(root1,Root1列表);
dfsRoot1(root2,root2列表);
根1列表。addall(根2列表);
收藏品。排序(根1列表);
返回root1List
}
私有静态void dfsRoot1(TreeNode root1,list整数Root1列表){ 0
if(根1==null){ 0
返回;
}
if (root1.left!=null){ 0
dfsRoot1(root1.left,Root1列表);
}
根1列表。添加(根1。val);
if (root1。对!=null){ 0
dfsRoot1(root1.right,Root1列表);
}
}
}感谢各位的阅读!关于“LeetCode如何找出两棵二叉搜索树中的所有元素"这篇文章就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147026.html