utils.hpp 999 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <string>
  2. #include <vector>
  3. struct TreeNode {
  4. int val;
  5. TreeNode *left;
  6. TreeNode *right;
  7. TreeNode() : val(0), left(nullptr), right(nullptr) {}
  8. TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
  9. TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
  10. };
  11. std::string
  12. treenode_to_str(TreeNode *root)
  13. {
  14. if ( root == NULL ) { return "nil"; }
  15. std::string ret;
  16. ret += "TreeNode(";
  17. ret += std::to_string(root->val);
  18. ret += ", ";
  19. ret += treenode_to_str(root->left);
  20. ret += ", ";
  21. ret += treenode_to_str(root->right);
  22. ret += ")";
  23. return ret;
  24. }
  25. template<typename T>
  26. std::string
  27. vector_to_str(std::vector<T> vec)
  28. {
  29. std::string ret = "[";
  30. for ( unsigned long i = 0; i < vec.size(); ++i ) {
  31. if ( i == 0 ) { ret += "\""; ret += std::to_string(vec[i]); ret += "\""; continue; }
  32. ret += ", \""; ret += std::to_string(vec[i]); ret += "\"";
  33. }
  34. ret += "]";
  35. return ret;
  36. }