LeetCode 100. 相同的树

题目描述

🔥 100. 相同的树

思路分析

这道题目可以使用递归的方式来解决,具体思路如下:

  • 如果两个二叉树都为空,则它们相同。
  • 如果一个二叉树为空,另一个二叉树不为空,则它们不相同。
  • 如果两个二叉树的根节点的值不相同,则它们不相同。
  • 递归地比较两个二叉树的左子树和右子树是否相同。

要判断两棵二叉树是否相同,可以使用递归的方法。具体步骤如下:

  1. 基本情况
    • 如果两个节点都为 nil,则它们相同,返回 true
    • 如果一个节点为 nil,另一个节点不为 nil,则它们不同,返回 false
    • 如果两个节点的值不相等,返回 false
  2. 递归判断
    • 递归调用,分别判断左子树和右子树是否相同。即比较 p.Leftq.Left,以及 p.Rightq.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)
}

🍏 点击查看 Java 题解

1
write your code here
本文作者:
本文链接: https://hgnulb.github.io/blog/2023/95440840
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!