• 欢迎光临~

树的子结构

开发技术 开发技术 2022-12-14 次浏览

输入两棵二叉树 ABA,B,判断 BB 是不是 AA 的子结构。

我们规定空树不是任何树的子结构。

/**
 * 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 dfs (TreeNode* a, TreeNode* b) {
        if (!b) return true;
        if (!a) return false;
        if (a->val != b->val) return false;
        
        return dfs (a->left, b->left) && dfs (a->right, b->right) ;
    }

    bool hasSubtree(TreeNode* a, TreeNode* b) {
        if (!a || !b) return false;
        if (dfs(a, b) || hasSubtree(a->left, b) || hasSubtree(a->right, b)) return true;
    }
};

  

程序员灯塔
转载请注明原文链接:树的子结构
喜欢 (0)