serialization and deserialization a binary tree.
void buildtree(TreeNode* &p, ifstream& ifs){
string token;
readNextToken(ifs, token);
while(token==","){
readNextToken(ifs, token); }
if(token=="#") {return;}
TreeNode *tn = new TreeNode( atoi( token ) );
p = tn;
buildtree(tn->left, ifs);
buildtree(tn->right, ifs);
}
void writeTree( TreeNode* p , ostream& os) {
if( p==NULL) {
os<<'#';
return;
}
os<<p->val;
writeTree(p->left, os);
writeTree(p->right, os);
}