为了检查一棵二叉树是否是另一棵树的子树,我在想,让我们将树的顺序遍历和顺序遍历存储为字符串(例如为每个节点分配字符),然后进行子字符串匹配,以检查树是否是子树。这种方法行得通吗?
最佳答案
不,不会的。考虑一个可能的子树,由包含1的根节点和包含2的左子节点组成第二棵树有根1,左子2,右子1。
很明显,第一个不是第二个的子树,但是您的方法会说,这是因为前序遍历是12和12 1,而顺序遍历是21和21 1。
当遇到要区分的空值时,您需要添加它们,使前序遍历1 2为空,1 2 1为空,而序遍历2 1为空,2 1为非子树。