题目链接:https://leetcode-cn.com/problems/same-tree/description/
题目描述
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例1
输入: 1 1 / \ / 2 3 2 3
[1,2,3], [1,2,3]
输出: true
示例2
输入: 1 1 / \ / 2 1 1 2
[1,2,1], [1,1,2]
输出: false
解决方法
递归算法 1.判断两个二叉树是否为空,若均为空则返回true,若只有一个为空则返回false 2.两个二叉树均不为空。 如果根节点具有相同的值并且根的左子树是相同的(递归)和根的右子树是相同的(递归)返回true,否则返回false。
class Solution
{
public
:
bool
isSameTree(TreeNode
* p
, TreeNode
* q
) {
if (!p
&& !q
) return true
;
if ((p
&& !q
) || (!p
&& q
)) return false
;
if (p
->val
==q
->val
&& isSameTree(p
->left
,q
->left
) && isSameTree(p
->right
,q
->right
)) return true
;
else return false
;
}
};