zoukankan      html  css  js  c++  java
  • [leetcode.com]算法题目

    Given two binary trees, write a function to check if they are equal or not.

    Two binary trees are considered equal if they are structurally identical and the nodes have the same value.

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     bool isSameTree(TreeNode *p, TreeNode *q) {
    13         // Start typing your C/C++ solution below
    14         // DO NOT write int main() function
    15         if (NULL==p && NULL==q) return true;
    16         
    17         if (NULL!=p && NULL==q) return false;
    18         
    19         if (NULL !=q && NULL==p) return false;
    20         
    21         if (p->val == q-> val)
    22             return (isSameTree(p->left,q->left) && isSameTree(p->right,q->right));
    23         else
    24             return false;
    25     }
    26 };
    题目答案

    思路:采用递归的方法,先判断(1)p和q都为NULL,则返回true;(2)p和q一个是NULL,一个不是NULL,则返回false;(3)如果(1)和(2)都不是,则证明两个tree都不是NULL,判断p->value是否等于q->value,若不等于,则返回false;若等于,则返回(他们的左子树相等 and 他们的右子树相等)。

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/xuning/p/3311107.html
Copyright © 2011-2022 走看看