LintCode:二叉树的前序遍历、中序遍历、后序遍历

二叉树的前序遍历

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

您在真实的面试中是否遇到过这个题? Yes
样例
给出一棵二叉树 {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: The root of binary tree. * @return: Preorder in vector which contains node values. */
    vector<int> preorderTraversal(TreeNode *root) {
        // write your code here
        vector<int> vec;
        preorderTraversal(root, &vec);
        return vec;

    }

    void preorderTraversal(TreeNode *root, vector<int> *vec){
        if (root == NULL || root->val == '#') return;
        (*vec).push_back(root->val);
        preorderTraversal(root->left, vec);
        preorderTraversal(root->right, vec);

    }

};


你可能感兴趣的:(遍历,二叉树,lintcode)