一、题目
二、代码
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution
{
public:
vector<int> record_p;
vector<int> record_q;
void recursion(TreeNode* process_node, vector<int> & process_vector)
{
if(process_node==nullptr) return;
process_vector.push_back(process_node->val);
// if(process_node->left) recursion(process_node->left,process_vector);
// else process_vector.push_back(10001);
// if(process_node->right) recursion(process_node->right,process_vector);
// else process_vector.push_back(10001);
if(process_node->left&&!process_node->right) // 完善版本
{
recursion(process_node->left,process_vector);
process_vector.push_back(10001);
}
else if(!process_node->left&&process_node->right)
{
process_vector.push_back(10001);
recursion(process_node->right,process_vector);
}
else if(process_node->left&&process_node->right)
{
recursion(process_node->left,process_vector);
recursion(process_node->right,process_vector);
}
else if(!process_node->left&&process_node->right)
{
}
}
bool isSameTree(TreeNode* p, TreeNode* q)
{
int i,j;
bool return_bool=1;
recursion(p,record_p);
// for(i=0;i<record_p.size();i++) std::cout<<" "<<record_p[i];
// std::cout<<std::endl;
recursion(q,record_q);
// for(i=0;i<record_q.size();i++) std::cout<<" "<<record_q[i];
// std::cout<<std::endl;
if(record_p.size()!=record_q.size()) return_bool=0;
else
{
for(i=0;i<record_p.size();i++)
{
if(record_p[i]!=record_q[i])
{
return_bool=0;
break;
}
}
}
return return_bool;
}
};