题目:
解答:
通过中序遍历进行比较。
/** * 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 checkSubTree(TreeNode* t1, TreeNode* t2) { string s1="",s2=""; inorder(t1,s1);//对t1进行中序遍历并记录节点值 inorder(t2,s2);//对t2进行中序遍历并记录节点值 if(s1.find(s2)==-1) return false; return true; } void inorder(TreeNode* t,string& s) { if(t==NULL) return; inorder(t->left,s); s+=to_string(t->val); inorder(t->right,s); } };
原文:https://www.cnblogs.com/ocpc/p/12861142.html