[LintCode]66.二叉树的前序遍历

来源:互联网 发布:龙瞎皮肤多少钱淘宝 编辑:程序博客网 时间:2024/06/05 05:32

给出一棵二叉树,返回其节点值的前序遍历。

样例

给出一棵二叉树 {1,#,2,3},

   1    \     2    /   3

 返回 [1,2,3].

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {public:    /*     * @param root: A Tree     * @return: Preorder in ArrayList which contains node values.     */    vector<int> preorderTraversal(TreeNode * root) {        vector<int> tmp;        if(root==NULL) return tmp;        stack<TreeNode*> s;        s.push(root);        while(!s.empty()){            TreeNode* cur=s.top();            tmp.push_back(cur->val);            s.pop();            if(cur->right!=NULL)                s.push(cur->right);            if(cur->left!=NULL)                s.push(cur->left);        }        return tmp;    }};