小编use*_*137的帖子

使用预订和有序字符串确定二叉树是否是另一个二叉树的子树

我想知道二叉树T2是否是二叉树T1的子树.我读到可以使用预订和有序遍历为T2和T1构建字符串表示,如果T2字符串是T1字符串的子字符串,则T2是T1的子树.

我对这种方法有点困惑,不确定它的正确性.

来自wiki:"树的子树T是由T中的节点及其T中的所有后代组成的树."

在以下示例中:

T2:
  1
 / \
2   3

T1:
  1
 / \
2   3
     \
      4
Run Code Online (Sandbox Code Playgroud)

如果我们为T2和T1构建字符串:

预购T2:"1,2,3"
预购T1:"1,2,3,4"
in T2:"2,1,3
"in T1:"2,1,3,4"

T2字符串是T1的子字符串,因此使用上述子字符串匹配方法,我们应该得出结论T2是T1的子树.

但是,根据定义,T2不应该是T1的子树,因为它没有T1的根节点的所有后代.

有一个相关的讨论在这里,这似乎结束方法是正确的.

我在这里错过了什么吗?

algorithm tree binary-tree

12
推荐指数
2
解决办法
5310
查看次数

标签 统计

algorithm ×1

binary-tree ×1

tree ×1