Go语言实现:【剑指offer】树的子结构

该题目来源于牛客网《剑指offer》专题。

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

Go语言实现:

type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}

//b是否和a的跟结点或左子树的跟结点或右子树的跟结点一致
func hasSubtree(a *TreeNode, b *TreeNode) bool {
return isSubtree(a, b) || hasSubtree(a.Left, b) || hasSubtree(a.Right, b)
}

//除了跟结点,其他结点是否也一致
func isSubtree(a *TreeNode, b *TreeNode) bool {
if b == nil || a == nil {
return false
}
if a.Val == b.Val {
return isSubtree(a.Left, b.Left) && isSubtree(a.Right, b.Right)
} else {
return false
}
}
上一篇:phpcms中常用代码总结


下一篇:Python selenium webdriver设置加载页面超时