将树作为 InOrder 序列中的字符串返回

Returning a tree as a string in InOrder sequence

我必须编写一个函数,它将一棵树作为参数并 returns 它作为一个按顺序排列的字符串。

这就是我得到的。

public static String concatInOrder( StringTreeNode t )
    {

        if(t == null) return "";

        return (t.left+t.val+t.right); 
    }

但是我 运行 在这方面遇到了一些困难。几个问题。

  1. 我是否错误地处理了问题?
  2. 在不使用库等的情况下,如何提高我在二叉搜索树操作方面的能力?
  3. 我错过了什么?不是说inOrder序列是left,current,对吗? (val 是 value 的缩写,所以它当前所在的叶子。

是的,这是正确的顺序。您添加的 inorder 标签说明了很多。

您需要递归调用concatInOrder方法:

public static String concatInOrder(StringTreeNode t)
{
    if (t == null) return "";

    return concatInOrder(t.left) + t.val + concatInOrder(t.right);
}