LeetCode 100. 相同的树
题目描述
思路分析
这道题目可以使用递归的方式来解决,具体思路如下:
- 如果两个二叉树都为空,则它们相同。
- 如果一个二叉树为空,另一个二叉树不为空,则它们不相同。
- 如果两个二叉树的根节点的值不相同,则它们不相同。
- 递归地比较两个二叉树的左子树和右子树是否相同。
要判断两棵二叉树是否相同,可以使用递归的方法。具体步骤如下:
- 基本情况:
- 如果两个节点都为
nil
,则它们相同,返回true
。- 如果一个节点为
nil
,另一个节点不为nil
,则它们不同,返回false
。- 如果两个节点的值不相等,返回
false
。- 递归判断:
- 递归调用,分别判断左子树和右子树是否相同。即比较
p.Left
和q.Left
,以及p.Right
和q.Right
。
参考代码
1
2
3
4
5
6
7
8
9
10
11
func isSameTree(p *TreeNode, q *TreeNode) bool {
if p == nil && q == nil {
return true
} else if p == nil || q == nil {
return false
}
if p.Val != q.Val {
return false
}
return isSameTree(p.Left, q.Left) && isSameTree(p.Right, q.Right)
}
1
write your code here
CC BY-NC-SA 4.0
许可协议,转载请注明出处!
本博客所有文章除特别声明外,均采用