Hackerrank Tree: Inorder Traversal problem solution YASH PAL, 31 July 2024 In this HackerRank Tree: Inorder Traversal problem we have given a pointer to the root node of a binary tree. and we need to print the values of a node in order in a single line separated with space. Problem solution in Python programming. class Node: def __init__(self, info): self.info = info self.left = None self.right = None self.level = None def __str__(self): return str(self.info) class BinarySearchTree: def __init__(self): self.root = None def create(self, val): if self.root == None: self.root = Node(val) else: current = self.root while True: if val < current.info: if current.left: current = current.left else: current.left = Node(val) break elif val > current.info: if current.right: current = current.right else: current.right = Node(val) break else: break def inOrder(root): if root: inOrder(root.left) print(root.info, end=" ") inOrder(root.right) tree = BinarySearchTree() t = int(input()) arr = list(map(int, input().split())) for i in range(t): tree.create(arr[i]) inOrder(tree.root) Problem solution in Java Programming. import java.util.*; import java.io.*; class Node { Node left; Node right; int data; Node(int data) { this.data = data; left = null; right = null; } } class Solution { public static void inOrder(Node root) { if(root!=null) { if(root.left!=null) { inOrder(root.left); } System.out.print(root.data + " "); if(root.right!=null) { inOrder(root.right); } } } public static Node insert(Node root, int data) { if(root == null) { return new Node(data); } else { Node cur; if(data <= root.data) { cur = insert(root.left, data); root.left = cur; } else { cur = insert(root.right, data); root.right = cur; } return root; } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int t = scan.nextInt(); Node root = null; while(t-- > 0) { int data = scan.nextInt(); root = insert(root, data); } scan.close(); inOrder(root); } } Problem solution in C++ programming. #include <bits/stdc++.h> using namespace std; class Node { public: int data; Node *left; Node *right; Node(int d) { data = d; left = NULL; right = NULL; } }; class Solution { public: Node* insert(Node* root, int data) { if(root == NULL) { return new Node(data); } else { Node* cur; if(data <= root->data) { cur = insert(root->left, data); root->left = cur; } else { cur = insert(root->right, data); root->right = cur; } return root; } } void inOrder(Node *root) { if(root == NULL){ return; } inOrder(root->left); printf("%d ", root->data); inOrder(root->right); } }; //End of Solution int main() { Solution myTree; Node* root = NULL; int t; int data; std::cin >> t; while(t-- > 0) { std::cin >> data; root = myTree.insert(root, data); } myTree.inOrder(root); return 0; } Problem solution in C programming. #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> struct node { int data; struct node *left; struct node *right; }; struct node* insert( struct node* root, int data ) { if(root == NULL) { struct node* node = (struct node*)malloc(sizeof(struct node)); node->data = data; node->left = NULL; node->right = NULL; return node; } else { struct node* cur; if(data <= root->data) { cur = insert(root->left, data); root->left = cur; } else { cur = insert(root->right, data); root->right = cur; } return root; } } void inOrder( struct node *root) { if (root != NULL) { inOrder(root->left); printf("%d ", root->data); inOrder(root->right); } } int main() { struct node* root = NULL; int t; int data; scanf("%d", &t); while(t-- > 0) { scanf("%d", &data); root = insert(root, data); } inOrder(root); return 0; } coding problems data structure