1.Preorder,Inorder,Postorder
class Solution {
//recursive solution
//preorder
private:
void preOrder(TreeNode* cur,vector<int> &res){
if(cur==NULL) return;
res.push_back(cur->val);
preOrder(cur->left,res);
preOrder(cur->right,res);
}
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> res;
preOrder(root,res);
return res;
}
};
/** Iterative solution for inorder
* 先走到最左边,然后对点进行操作,再去右边
*/
vector<int> inorderTraversal(TreeNode* root) {
stack<TreeNode*> search;
vector<int> res;
TreeNode* cur=root;
while(cur!=NULL||!search.empty()){
while(cur){
search.push(cur);
cur=cur->left;
}
cur=search.top();
search.pop(