Advertisement
RadioNurshat

Deep Dark Fantasy

May 25th, 2021
926
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. vector<int> DeepDarkFantasy(Node* init = nullptr) {
  2.         vector<int> a;
  3.         if (init == nullptr) init = this->root;
  4.         stack<Node*> s;
  5.         s.push(init);
  6.         while (!s.empty()) {
  7.             Node* that = s.top();
  8.             if (that->left != nullptr) {
  9.                 s.push(that->left);
  10.                 continue;
  11.             }
  12.             else if (that->right != nullptr) {
  13.                 s.pop();
  14.                 if (s.size() > 0) {
  15.                     Node* temp = s.top();
  16.                     temp->left = nullptr;
  17.                 }
  18.                 s.push(that->right);
  19.                 a.push_back(that->data);
  20.             }
  21.             else {
  22.                 s.pop();
  23.                 if (s.size() > 0) {
  24.                     Node* temp = s.top();
  25.                     temp->left = nullptr;
  26.                 }
  27.                 a.push_back(that->data);
  28.             }
  29.         }
  30.         return a;
  31.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement