Skip to content
本页目录

0100-相同的树

https://leetcode.cn/problems/same-tree

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:

输入:p = [1,2,3], q = [1,2,3]
输出:true

示例 2:

输入:p = [1,2], q = [1,null,2]
输出:false

示例 3:

输入:p = [1,2,1], q = [1,1,2]
输出:false

提示:

两棵树上的节点数目都在范围 [0, 100] 内 -10^4 <= Node.val <= 10^4

思路

判断两个节点,当有一个为null的时候,另一个必须也是null。
当都不是null的时候,判断值是否相等。
如果都相等则分别递归判断子树是否相等。

参考代码

csharp
public class Solution {
    public bool IsSameTree(TreeNode p, TreeNode q) {
        if(p == null || q == null){
            return p == null && q == null;
        }
        if(p.val != q.val){
            return false;
        }
        return IsSameTree(p.left,q.left) && IsSameTree(p.right,q.right);
    }
}

Released under the MIT License.