0
0
DSA C++programming~20 mins

Binary Tree Node Structure in DSA C++ - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Binary Tree Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Inorder Traversal on a Simple Binary Tree
What is the output of the inorder traversal for the given binary tree?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
    Node(int val) : data(val), left(nullptr), right(nullptr) {}
};

void inorder(Node* root) {
    if (!root) return;
    inorder(root->left);
    std::cout << root->data << " ";
    inorder(root->right);
}

int main() {
    Node* root = new Node(10);
    root->left = new Node(5);
    root->right = new Node(15);
    inorder(root);
    return 0;
}
A5 10 15
B15 10 5
C10 5 15
D10 15 5
Attempts:
2 left
💡 Hint
Inorder traversal visits left child, then node, then right child.
Predict Output
intermediate
2:00remaining
Output of Preorder Traversal on a Binary Tree
What is the output of the preorder traversal for the given binary tree?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
    Node(int val) : data(val), left(nullptr), right(nullptr) {}
};

void preorder(Node* root) {
    if (!root) return;
    std::cout << root->data << " ";
    preorder(root->left);
    preorder(root->right);
}

int main() {
    Node* root = new Node(20);
    root->left = new Node(10);
    root->right = new Node(30);
    preorder(root);
    return 0;
}
A20 10 30
B20 30 10
C30 20 10
D10 20 30
Attempts:
2 left
💡 Hint
Preorder traversal visits node first, then left child, then right child.
Predict Output
advanced
2:00remaining
Output of Postorder Traversal on a Binary Tree
What is the output of the postorder traversal for the given binary tree?
DSA C++
#include <iostream>
struct Node {
    int data;
    Node* left;
    Node* right;
    Node(int val) : data(val), left(nullptr), right(nullptr) {}
};

void postorder(Node* root) {
    if (!root) return;
    postorder(root->left);
    postorder(root->right);
    std::cout << root->data << " ";
}

int main() {
    Node* root = new Node(7);
    root->left = new Node(3);
    root->right = new Node(9);
    postorder(root);
    return 0;
}
A3 7 9
B7 3 9
C9 7 3
D3 9 7
Attempts:
2 left
💡 Hint
Postorder traversal visits left child, right child, then node.
Predict Output
advanced
2:00remaining
Output of Level Order Traversal on a Binary Tree
What is the output of the level order traversal (breadth-first) for the given binary tree?
DSA C++
#include <iostream>
#include <queue>

struct Node {
    int data;
    Node* left;
    Node* right;
    Node(int val) : data(val), left(nullptr), right(nullptr) {}
};

void levelOrder(Node* root) {
    if (!root) return;
    std::queue<Node*> q;
    q.push(root);
    while (!q.empty()) {
        Node* curr = q.front();
        q.pop();
        std::cout << curr->data << " ";
        if (curr->left) q.push(curr->left);
        if (curr->right) q.push(curr->right);
    }
}

int main() {
    Node* root = new Node(1);
    root->left = new Node(2);
    root->right = new Node(3);
    root->left->left = new Node(4);
    root->left->right = new Node(5);
    levelOrder(root);
    return 0;
}
A1 3 2 5 4
B4 5 2 3 1
C1 2 3 4 5
D2 1 3 4 5
Attempts:
2 left
💡 Hint
Level order visits nodes level by level from left to right.
🧠 Conceptual
expert
2:00remaining
Number of Nodes in a Complete Binary Tree of Height h
What is the maximum number of nodes in a complete binary tree of height h (where height is the number of edges from root to deepest leaf)?
A2^(h+1)
B2^(h+1) - 1
C2^h - 1
D2^h
Attempts:
2 left
💡 Hint
A complete binary tree is full except possibly the last level, which is filled from left to right.