代码:
- equal函数来dfs判断两个树是否一样
- isSubStructure函数来dfs方式向equal中传数据,
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSubStructure(A *TreeNode, B *TreeNode) bool {
if A == nil || B == nil {
return false
}
if equal(A, B) {
return true
}
return isSubStructure(A.Left, B) || isSubStructure(A.Right, B)
}
func equal(a *TreeNode, b *TreeNode) bool {
if b == nil {
return true
}
if a == nil || a.Val != b.Val {
return false
}
return equal(a.Left, b.Left) && equal(a.Right, b.Right)
}