题目难度:简单
一、题目描述
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
LeetCode链接:100. 相同的树 - 力扣(LeetCode)
二、解题思路
核心思路:
先比较两颗二叉树的根节点
- 如果「都为空」,则返回 true,说明两树相同。
- 如果「一个为空一个不为空」,说明这两颗树不相同,则返回 false。
- 如果「都不为空,但节点值不相同」,说明这两颗树不相同,则返回 false。
- 经过 1 和 2 和 3 的判断,说明根节点「都不为空,但节点值相同」,则当前节点相同。我们继续递归遍历,比较它的左子树和右子树的根节点。
递归过程演示:
依次比较两颗二叉树中「当前树(1、2、3、4、5、6)的根节点」是否相等,这样每个节点都被比较了一次。