📢 Too many exams? Don’t know which one suits you best? Book Your Free Expert 👉 call Now!


    Question

    Consider the following C++-like pseudo-code for a binary

    tree traversal:     ```cpp     struct Node {         int data;         Node left;         Node right;     };     void trickyTraversal(Node root) {         if (root == nullptr) {             return;         }         if (root->left != nullptr) {             trickyTraversal(root->left);         }         std::cout data right != nullptr) {             trickyTraversal(root->right);         }     }     ```     Given the following binary tree:     ```           10          /  \         5    15        / \    /       2   7  12     ```     What will be the output of `trickyTraversal(root)` where `root` points to the node with data `10`? 
    A `2 5 7 10 12 15` Correct Answer Incorrect Answer
    B `10 5 2 7 15 12` Correct Answer Incorrect Answer
    C `2 7 5 12 15 10` Correct Answer Incorrect Answer
    D `10 5 15 2 7 12` Correct Answer Incorrect Answer

    Solution

    The `trickyTraversal` function is an Inorder Traversal.            It first recursively visits the left child.            Then it prints the current node's data.            Then it recursively visits the right child.         This is the definition of an Inorder Traversal.         For the given tree:         ```               10              /  \             5    15            / \    /           2   7  12         ```         Inorder traversal: Left -> Root -> Right         1.  `trickyTraversal(10)`             1.1. `trickyTraversal(5)`                 1.1.1. `trickyTraversal(2)`                     1.1.1.1. `trickyTraversal(nullptr)` -> return                     1.1.1.2. Print `2`                     1.1.1.3. `trickyTraversal(nullptr)` -> return                 1.1.2. Print `5`                 1.1.3. `trickyTraversal(7)`                     1.1.3.1. `trickyTraversal(nullptr)` -> return                     1.1.3.2. Print `7`                     1.1.3.3. `trickyTraversal(nullptr)` -> return             1.2. Print `10`             1.3. `trickyTraversal(15)`                 1.3.1. `trickyTraversal(12)`                     1.3.1.1. `trickyTraversal(nullptr)` -> return                     1.3.1.2. Print `12`                     1.3.1.3. `trickyTraversal(nullptr)` -> return                 1.3.2. Print `15`                 1.3.3. `trickyTraversal(nullptr)` -> return         Output: `2 5 7 10 12 15`

    Practice Next
    ask-question