https://leetcode.com/problems/construct-string-from-binary-tree/description/
Use pre-order tree traversal. Note that the left (or right) branch and its sub-nodes are surrounded by "()". Add "(" and ")" accordingly.
void preOrder(TreeNode *node, string &tStr){
if(!node) return;
tStr += to_string(node->val);
if(node->left) {
tStr += "(";
preOrder(node->left, tStr);
tStr += ")";
}
if(node->right) {
if(!node->left)
tStr += "()";
tStr += "(";
preOrder(node->right, tStr);
tStr += ")";
}
}
string tree2str(TreeNode* t) {
string treeStr;
preOrder(t, treeStr);
return treeStr;
}
No comments:
Post a Comment