我想知道二叉树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的根节点的所有后代.
有一个相关的讨论在这里,这似乎结束方法是正确的.
我在这里错过了什么吗?