Tuesday, December 17, 2013

Binary Tree Pre-order Traversal

Given a binary tree, traverse the tree in pre-order, print nodes' values.

Preorder traversal:  
  1. Visit the root.
  2. Traverse the left subtree.
  3. Traverse the right subtree.

/**
 * Definition of a binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */

A recursive solution is simple: 

void pre-order( TreeNode *root)
{
    if (not root)
        return ;
     std:cout<< root->val << ' ';
     pre-order(root->left);
     pre-order(root->right);
}


What about an iterative solution? 
Hint: use stack. 



2 comments: