algorithm - 具有空元素的中序、先序和后序遍历的唯一性

标签 algorithm tree binary-tree tree-traversal preorder

我们都知道不同的二叉树可以有相同的中序前序后序遍历。但是如果我们要将 null 元素包含到 preorder 遍历中,那么只要树是唯一的,遍历的结果就是唯一的。考虑这两棵树:

  3                      3
 /                        \
4            vs.           4

他们正常的 preorder 遍历对于两者都是 {3,4},但是如果我们要包含 null 元素,那么他们的遍历将分别为 {3,4,null,null,null}{3,null,4,null,null},使遍历唯一。

我的问题是,中序遍历和后序遍历是否也是如此?我们如何证明这一点?

最佳答案

对于后序遍历来说是正确的,因为这只是倒序树的前序遍历的逆。

中序遍历不是这样,它总是以 null 开始,以 null 结束,并在 null 和节点之间交替。

例如,这些树:

  B          D    
 / \        / \
A   D      B   E
   / \    / \
  C   E  A   C

都生产

null, A, null, B, null, C, null, D, null, E, null

关于algorithm - 具有空元素的中序、先序和后序遍历的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871284/

相关文章:

algorithm - 压缩到固定长度

java - 如何检查一组矩形的孔洞和相互作用?

java - 使用递归从二叉树中删除叶子

c - 二叉树 - 插入和镜像之间的区别?

c++ - 如何在 C++ 中为多步算法创建 "manager"?

algorithm - 动态规划和 0/1 背包

jquery - 在 JQuery/Angular JS 中通过拖放创建嵌套条件

r - 如何在 R 中绘制 CostSensitiveClassifier 树?

java - 对象不同,但通过 .equals 函数和 '==' 运算符获得

algorithm - 为多个起始位置找到到终点的最短路径