创建表达式树Kotlin

时间:2018-02-08 07:06:10

标签: recursion kotlin

我的任务是从List输入递归创建表达式树。

离。 (" +",2,3)

     "+"
    /   \
   2     3

我知道我的递归已经结束,但我无法弄清楚如何让它起作用。我很自豪地承认这个问题的时间比我长。任何见解都表示赞赏!这就是我所拥有的

fun TreeBuild(input:List<Any>): Pair<Tree, List<Any>>{
    var tree = Tree(input.get(0), Unit, Unit)
    var list = input
    System.out.println(list)

    if(input.size == 1 ){
        list = list.drop(1)
        return Pair(Tree(input.get(0), Unit, Unit), list)
    }

    var flag: Boolean = (input.get(0) is Int)
    if (!flag){
        list = list.drop(1)
        tree.left = TreeBuild(list).first
        list = list.drop(1)
        tree.right = TreeBuild(list).first
    }
    return Pair(tree, list)
}

0 个答案:

没有答案