leetcode Question 90: Same Tree

Same Tree:

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.


Recursively check the left child and right child.  If the value is different, or if one of the two nodes is null, return false.


 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
class Solution {
    bool isSameTree(TreeNode *p, TreeNode *q) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if (!p && !q) {return true;}
        if ((!p && q) || (!q && p)){return false;}
        if (p->val!=q->val){return false;}
        return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);


# Definition for a  binary tree node
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    # @param p, a tree node
    # @param q, a tree node
    # @return a boolean
    def isSameTree(self, p, q):
        if p == None and q == None:
            return True
        elif p == None and q != None:
            return False
        elif p != None and q == None:
            return False
        elif p.val != q.val:
            return False
            return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)

No comments:

Post a Comment