leetcode-572. 另一棵树的子树

https://leetcode.cn/problems/subtree-of-another-tree/description/

需要有两个不同的递归,如果当前节点的值和另一棵树的root.Val相同,那么需要判断两棵树是否完全相等

/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isSubtree(root *TreeNode, subRoot *TreeNode) bool {
if subRoot == nil {
return true
}
if root == nil && subRoot != nil {
return false
}
if root.Val == subRoot.Val && isSametree(root, subRoot) {
return true
}
return isSubtree(root.Left, subRoot) || isSubtree(root.Right, subRoot)
}
func isSametree(root *TreeNode, subRoot *TreeNode) bool {
if root == nil && subRoot == nil {
return true
} else if (root != nil && subRoot == nil) || (root == nil && subRoot != nil) {
return false
}
if root.Val != subRoot.Val {
return false
}
return isSametree(root.Left, subRoot.Left) && isSametree(root.Right, subRoot.Right)
}
posted @   吴丹阳-V  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示