首页 > 解决方案 > 从二叉树中获取所有元素到列表 - 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");
}

标签: javalistbinary-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);
    }

推荐阅读