利用前序遍历的特性,如果左子树不空,下一个一定是左节点,不然就是# 因为是转中序遍历,就在两次遍历之间输出 12345678910111213141516171819202122232425262728#include <iostream>#include <cstring>#include <algorithm>using namespace std;int k;string str;void dfs(){ if (str[k] == '#') { k ++ ; return; } char r = str[k ++ ]; // 根节点 dfs(); // 左子树 cout << r << ' '; dfs(); // 右子树}int main(){ cin >> str; dfs(); return 0;}