100. Same Tree

来源:互联网 发布:淘宝客新建推广位 编辑:程序博客网 时间:2024/05/17 03:53
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isNodeSame(TreeNode* l,TreeNode* r)
    {
        if( NULL == l && NULL == r )
            return true;
        else if( (NULL == l && NULL != r) || (NULL != l && NULL == r) )
            return false;
        else
        {
            if( l->val != r->val )
                return false;
            else 
                return isNodeSame(l->left,r->left) && isNodeSame(l->right,r->right);
        }
    }
    bool isSameTree(TreeNode* p, TreeNode* q) 
    {
        TreeNode* p_P = p;
        TreeNode* p_Q = q;
        if( NULL == p_P && NULL == p_Q )
            return true;
        if( true == isNodeSame(p_P,p_Q) )
            return true;
        else
            return false;
    }

};

【思考】

属于二叉树遍历的基础。和求二叉树深度思想一致。

0 0
原创粉丝点击