Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. TreeNode* str2tree(string s) {
  2. int i = 0;
  3. return s.empty() ? nullptr : create_tree(s, i);
  4. }
  5.  
  6. TreeNode* create_tree(string s, int &i) {
  7. TreeNode* root;
  8. //cout << s.substr(i) << endl;
  9.  
  10. int number = 0;
  11. int negitive = 1;
  12. if (s[i] == '-'){
  13. negitive = -1;
  14. i++;
  15. }
  16.  
  17. while (s[i] >= '0' && s[i] <= '9') {
  18. number = number * 10 + s[i] - '0';
  19. i++;
  20. }
  21.  
  22. root = new TreeNode(number*negitive);
  23.  
  24. if (s[i] == '('){
  25. i++; // (
  26. root->left = create_tree(s, i);
  27. i++; // )
  28. }
  29.  
  30. if (s[i] == '(') {
  31. i++; // (
  32. root->right = create_tree(s, i);
  33. i++; // )
  34. }
  35.  
  36. return root;
  37. }
  38. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement