leftview.cpp

#include <bits/stdc++.h> using namespace std; struct Node { int data; Node* left; Node* right; }; void leftView(struct Node *root); Node* newNode(int val) { Node* temp = new Node; temp->data = val; temp->left = NULL; temp->right = NULL; return temp; } // Function to Build Tree Node* buildTree(string str) { // Corner Case if(str.length() == 0 || str[0] == 'N') return NULL; // Creating vector of strings from input // string after spliting by space vector<string> ip; istringstream iss(str); for(string str; iss >> str; ) ip.push_back(str); // for(string i:ip) // cout<<i<<" "; // cout<<endl; // Create the root of the tree Node* root = newNode(stoi(ip[0])); // Push the root to the queue queue<Node*> queue; queue.push(root); // Starting from the second element int i = 1; while(!queue.empty() && i < ip.size()) { // Get and remove the front of the queue Node* currNode = queue.front(); queue.pop(); // Get the current node's value from the string string currVal = ip[i]; // If the left child is not null if(currVal != "N") { // Create the left child for the current node currNode->left = newNode(stoi(currVal)); // Push it to the queue queue.push(currNode->left); } // For the right child i++; if(i >= ip.size()) break; currVal = ip[i]; // If the right child is not null if(currVal != "N") { // Create the right child for the current node currNode->right = newNode(stoi(currVal)); // Push it to the queue queue.push(currNode->right); } i++; } return root; } int main() { int t; scanf("%d ",&t); while(t--) { string s; getline(cin,s); Node* root = buildTree(s); leftView(root); cout << endl; } return 0; } void leftView(Node *root) { // Your code here if (root == NULL) { return; } cout << root->data << " "; if ( root->left != NULL ) { leftView (root->left); } else { if ( root->right == NULL ) { return; } else { leftView ( root->right ); } } }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.