剑指offer---树的子结构
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { //空树不是任意一个数的子结构 public: bool panduan(TreeNode* root,TreeNode* node) { if(node==NULL) { return true; } if(root=NULL) { return false; } //出口条件 判断到最后 主树为空了 说明不是子树 //如果最后 子树为空 说明为true if(root->val==node->val) { if(panduan(root->right,node->right)&&panduan(root->left.node->left)) { return true; } } return(panduan(root->left,node)||panduan(root->right,node)); } bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { if(pRoot2==NULL) { return false; } return panduan(pRoot1,pRoot2); } };