其他分享
首页 > 其他分享> > 剑指 Offer 26. 树的子结构

剑指 Offer 26. 树的子结构

作者:互联网

剑指 Offer 26. 树的子结构 - 力扣(LeetCode) (leetcode-cn.com)

B是A的子树的情况:

如果B先为空,则B是A的子树;如果A先空,则B不是A的子树。

需要一个函数比较A的子树和B相同,则B是A的子树:A子树根节点和B根节点相同,左右相等。

/**
 * 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 comp(TreeNode*A,TreeNode*B){
        if(B==nullptr) return true;
        if(A==nullptr) return false;
        return A->val==B->val&&comp(A->left,B->left)&&comp(A->right,B->right);
    }
    bool isSubStructure(TreeNode* A, TreeNode* B) {
        if(A==nullptr||B==nullptr) return false;
        return comp(A,B)||isSubStructure(A->left,B)||isSubStructure(A->right,B);
    }
};

标签:26,right,return,Offer,nullptr,子结构,子树,TreeNode,left
来源: https://blog.csdn.net/weixin_47791283/article/details/122610812