struct treeNode {
treeNode* left;
treeNode* right;
int val;
treeNode():left(NULL),right(NULL),val(-1){
}
};
//前序遍历递归
void preOrderTravser(treeNode* head){
if(head==NULL)
return;
cout<<head->val<<" ";
if(head->left) preOrderTravser(head->left);
if(head->right) preOrderTravser(head->right);
}
//前序遍历非递归
void preOrderTravserWithStack(treeNode* head){
if(head==NULL)
return;
stack<treeNode*> sta;
sta.push(head);
while(!sta.empty()){
treeNode* pNode=sta.top();
cout<<pNode->val<<" ";
sta.pop();
if(pNode->right) sta.push(pNode->right);
if(pNode->left) sta.push(pNode->left);
}
}