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.

 

用递归,注意 判断 当 各位NULL的时候的情况。

C++:

 1 class Solution {
 2 public:
 3     bool isSameTree(TreeNode *p, TreeNode *q) {
 4         if(p==NULL&&q==NULL) 
 5             return 1;
 6         else if(!(q!=NULL&&p!=NULL&&q->val==p->val)) 
 7             return 0;
 8         return  isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
 9     }
10 };

 

Python:

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

 

posted on 2015-04-05 00:32  黄瓜小肥皂  阅读(149)  评论(0编辑  收藏  举报