fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct tree
  5. {
  6. tree *left;
  7. tree *right;
  8. int value;
  9. };
  10.  
  11. tree* createNode(int value)
  12. {
  13. tree *temp = new tree;
  14. temp->left = NULL;
  15. temp->right = NULL;
  16. temp->value = value;
  17. return temp;
  18. }
  19.  
  20. tree *insertNode(tree * node, int val)
  21. {
  22. if (node == NULL)
  23. return createNode(val);
  24.  
  25. if (val > node->value )
  26. node->right = insertNode(node->right, val);
  27. else if (val <= node->value)
  28. node->left = insertNode(node->left, val);
  29.  
  30. return node;
  31. }
  32.  
  33. void printTree(tree *head)
  34. {
  35. if (head == NULL)
  36. return;
  37. printTree(head->left);
  38. cout<<head->value<<" ";
  39. printTree(head->right);
  40. }
  41.  
  42. bool check(tree *head, tree *tail)
  43. {
  44. if (head == NULL && tail == NULL)
  45. return true;
  46.  
  47. if (head == NULL || tail == NULL)
  48. return false;
  49.  
  50. if (head->value != tail->value)
  51. return false;
  52.  
  53. return ( check(head->right, head->right) && check(head->left, head->left));
  54.  
  55. }
  56. int main() {
  57. // your code goes here
  58. tree *head = NULL;
  59. tree *tail = NULL;
  60. for (int i = 1; i < 10; i++)
  61. {
  62. head = insertNode(head, i);
  63. tail = insertNode(tail, i);
  64. }
  65. //printTree(head);
  66. cout<<check(head->right,tail);
  67. return 0;
  68. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
Standard output is empty