Go语言实现:【剑指offer】树的子结构
2024-09-25 17:14:42
该题目来源于牛客网《剑指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
}
}
最新文章
- 基于Python的函数回归算法验证
- cdh环境下,spark streaming与flume的集成问题总结
- python---dict字典
- Android 5.x特性概览三
- 生成PHP数组文件
- window编程之win程序框架
- 萌新关于C#委托一点见解
- 【一天一道LeetCode】#25. Reverse Nodes in k-Group
- echarts 配置
- 菜鸟安卓学习路——更强大的滚动控件--RecycleView
- SonarQube 集成 GitLabCI
- iOS10原生的语音转文字功能
- 【译】第22节---Fluent API - EntityTypeConfiguration类
- WCF中的Dispose(转)
- PHP查询登录中的sql注入
- SQL Server 2008重新保存表时出错
- How do you add? UVA - 10943(组合数的隔板法!!)
- clob字段超过4000转String类型
- Python自动化之logging模块
- nl命令(转)