
递归转化为判断两个二叉树是否相同
1class Solution { 2public: 3 bool isSubtree(TreeNode* s, TreeNode* t) { 4 if(s==NULL) return false; 5 if(t==NULL) return true; 6 return isSubtree(s->left,t) || isSubtree(s->right,t) || isSameTree(s,t); 7 } 8 9 bool isSameTree(TreeNode* s, TreeNode* t){ 10 if(s==NULL&&t==NULL) return true; 11 else if(s==NULL||t==NULL) return false; 12 else if(s->val==t->val) return isSameTree(s->left,t->left) && isSameTree(s->right,t->right); 13 else return false; 14 } 15};