等價二叉樹

題目:

檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,而且每一個對應位置上的節點上的數都相等。ide

樣例:

clipboard.png

思路:

採用遞歸的思路:this

  • 若是兩棵樹都是空,認爲是等價的。
  • 若是a.val == b.val,則只需考慮左右子樹是否是等價二叉樹。

參考答案:

/**
 * Definition of TreeNode:
 * class TreeNode {
 * public:
 *     int val;
 *     TreeNode *left, *right;
 *     TreeNode(int val) {
 *         this->val = val;
 *         this->left = this->right = NULL;
 *     }
 * }
 */


class Solution {
public:
    /*
     * @param a: the root of binary tree a.
     * @param b: the root of binary tree b.
     * @return: true if they are identical, or false.
     */
    bool isIdentical(TreeNode * a, TreeNode * b) {
        // write your code here
        if(a==NULL && b==NULL)  return true;
        if(a==NULL || b==NULL)  return false;
        
        if(a->val == b->val)
        {
            return isIdentical(a->left,b->left)&&isIdentical(a->right,b->right);
        }
        else    return false;
    }
};
相關文章
相關標籤/搜索