LeetCode 100 相同的树

Leetcode 100 相同的树

  • 给定根节点,比较两棵树是否相同
  • 重点:
    1. 先比较当前节点(根节点)是否相同: 都不存在 or 都存在且值相同
    2. 根节点不同,直接返回false
    3. 根节点相同,向下递归判断左右子节点是否相同,返回值为: 左右子节点是否都相同
  • 实现: 递归
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //不同时存在
        if((p==null && q!=null) || (p!=null && q==null))
            return false;
        //都存在但值不相同
        else if(p!=null && q!=null) {
            if(p.val != q.val) return false;
        }
        //都不存在
        else return true;
        
        //比较子节点
        boolean leftTree = isSameTree(p.left, q.left);
        boolean rightTree = isSameTree(p.right, q.right);

        return leftTree && rightTree; 
    }
}
原文地址:https://www.cnblogs.com/CodeSPA/p/13358856.html