java - 从二叉树中获取所有元素到列表 - JAVA
问题描述
假设我们有一个二叉树,我们想要遍历它并获取所有元素(Node.value)并用它们创建一个列表。我想以这种方式解决问题:
public List<T> fromTreeToList(){
// use elementsToList to create the list
}
public (what is the optional) elementsToList(Node node){
// use this method to recursion
List<T> example = new ArrayList<>();
if (node != null){
example.add(node.val) ;
example.add(elementsToList(node.left));
example.add(elementsToList(node.right)) ;
}else System.out.println("Empty Tree");
}
解决方案
我们可以使用递归函数进行树遍历并不断将元素添加到列表中。假设 Node.val 是 int 类型
public static void main(String[] args) {
//assuming that we already have tree with root treeRoot
List<Integer> list = new ArrayList<>();
treeItemsToList(treeRoot, list);
//print the list
}
public void treeItemsToList(Node node, List<Integer> list ){
if(node == null){
return;
}
treeItemsToList(node.left, list);
list.add(node.val);
treeItemsToList(node.right, list);
}
推荐阅读
- apache-kafka - 如何生成输入数据并将其存储到本地文件以及我们如何使用 kafka 读取该输入生成文件的数据
- spring - 在 Spring 的 JmsListener 中实例化 IWebContext
- python - 如何限制可以传递给方法参数的允许值(使用类型提示允许静态代码分析)
- java - 春季启动任务以更新数据库中的外键
- azure - 如何将自动和手动同步选项与双向 Azure 同步数据一起使用?
- linux - vmlaunch 简单崩溃 ubuntu 16.04
- c++ - 验证字符小于字母c ++中的指定字母
- java - 如何从控制台读取 n 行?
- django - 这个简单的视图函数有什么问题?
- c# - 在运行时下载最新的 NuGet