Both solution 1 and 2's runtime are O(n), n is the total number of nodes in the given binary tree. Solution 1 uses O(n) extra memory for the queue used, where solution 2 only uses O(1) memory for each recursive call. But the downside of the recursive solution is the the methods stack may get very deep.
*right;11node() : data(0), left(NULL), right(NULL) { }12node(intd) : data(d), left(NULL), right(NULL) { }13};1415voidprint(node *node) {16if(!node)return;17print(node->left);18cout << node->data <