给定两棵二叉树 tree1
和 tree2
,判断 tree2
是否以 tree1
的某个节点为根的子树具有 相同的结构和节点值 。
注意,空树 不会是以 tree1
的某个节点为根的子树具有 相同的结构和节点值 。
func isSubStructure(A *TreeNode, B *TreeNode) bool {
return A != nil && B != nil && (solve(A, B) || isSubStructure(A.Left, B) || isSubStructure(A.Right, B))
}
func solve(A, B *TreeNode) bool {
if B == nil {
return true
}
if A == nil || A.Val != B.Val {
return false
}
return solve(A.Right, B.Right) && solve(A.Left, B.Left)
}