zoukankan      html  css  js  c++  java
  • 【leetcode 简单】第二十一题 相同的树

    给定两个二叉树,编写一个函数来检验它们是否相同。

    如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

    示例 1:

    输入:       1         1
              /        / 
             2   3     2   3
    
            [1,2,3],   [1,2,3]
    
    输出: true

    示例 2:

    输入:      1          1
              /           
             2             2
    
            [1,2],     [1,null,2]
    
    输出: false
    

    示例 3:

    输入:       1         1
              /        / 
             2   1     1   2
    
            [1,2,1],   [1,1,2]
    
    输出: false
    

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     struct TreeNode *left;
     *     struct TreeNode *right;
     * };
     */
    bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
        
        if (p == NULL && q == NULL) //根都为空
        {
            return 1;
        }
        if ((p == NULL && q !=NULL) || (p != NULL && q == NULL)) //一个为空一个不为空
        {
            return 0;
        }
        if(p->val != q->val) //根不同
        {
            return 0;
        }
        if (p->left == NULL && q->left == NULL) //左边为空,对比右边
        {
            return isSameTree(p->right,q->right);
        }
        if ((p->left!=NULL && q->left !=NULL) && (p->left->val == q->left->val)) //左边不同时为空,左边的val相同,判断左侧和右侧是否相等
        {
            return isSameTree(q->left,p->left) && isSameTree(q->right,p->right);
        }
        return 0;
    }
  • 相关阅读:
    CSS 基础(一)
    74.Search a 2D Matrix
    73.Set Matrix Zeroes
    66.Plus One
    64.Minimum Path Sum
    63.Unique Paths II
    62.Unique Paths
    54.Spiral Matrix
    59.Spiral Matrix II
    55.Jump Game
  • 原文地址:https://www.cnblogs.com/flashBoxer/p/9484502.html
Copyright © 2011-2022 走看看