Skip to content

Instantly share code, notes, and snippets.

@sundeepblue
Created May 3, 2014 18:54
Show Gist options
  • Select an option

  • Save sundeepblue/1789e7a184f149be6233 to your computer and use it in GitHub Desktop.

Select an option

Save sundeepblue/1789e7a184f149be6233 to your computer and use it in GitHub Desktop.
[tree] preorder binary tree traversal
struct treenode {
int val;
treenode *left, *right;
treenode(int v) : val(v), left(NULL), right(NULL) {}
};
void pre_order(treenode *r) {
if(!r) return;
stack<treenode*> stk;
stk.push(r);
while(!stk.empty()) {
treenode *cur = stk.top();
stk.pop();
if(cur == NULL) continue;
cout << cur->val << endl;
stk.push(cur->right);
stk.push(cur->left);
}
}
int main()
{
treenode *r = new treenode(3);
r->left = new treenode(2);
r->right = new treenode(4);
r->left->left = new treenode(1);
pre_order(r);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment