问题描述
请告诉我为什么在遍历树的PreOrder方法2中是错误的。我应该使用哪种方式?那么主要的区别是TreeNode *
是method1的返回值,而TreeNode *root
是method2的参数。
method1: right
// Decodes your encoded data to tree.
TreeNode* deserialize(string data) {
istringstream in(data);
return deserialize(in);
}
TreeNode *deserialize(istringstream &in)
{
string val;
in >> val;
if (val == "#") {
return nullptr;
}
TreeNode *root = new TreeNode(stoi(val));
root->left = deserialize(in);
root->right = deserialize(in);
return root;
}
method2: wrong
// Decodes your encoded data to tree.
TreeNode* deserialize(string data) {
istringstream in(data);
TreeNode *res;
deserialize(in,res);
return res;
}
void deserialize(istringstream &in,TreeNode *root)
{
string val;
in >> val;
if (val == "#") {
root = nullptr;
return;
}
root = new TreeNode(stoi(val));
deserialize(in,root->left);
deserialize(in,root->right);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)