leetcode:Binary Tree Preorder Traversal 先序遍历

来源:互联网 发布:菲律宾网络博客靠谱吗 编辑:程序博客网 时间:2024/05/22 23:00
/** * Given a binary tree, return the preorder traversal of its nodes' values. * Note: Recursive solution is trivial, could you do it iteratively?*//// Test Unit/*  *          1 *         / \ *        2   3 *           / *          4 *           \ *            5 */#include <iostream>#include <stack>#include <vector>using namespace std;struct TreeNode {    int val;    TreeNode *left;    TreeNode *right;    TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution{public:    Solution(){};    ~Solution(){};    vector<int> preorderTraversal(TreeNode* root){        vector<int> res;        stack<TreeNode*> s;        if(!root)            return res;        s.push(root);        while(!s.empty()){            TreeNode* p=s.top();            res.push_back(p->val);            s.pop();            if(p->right) s.push(p->right);            if(p->left) s.push(p->left);        }        return res;    }};int main(int argc, char** argv) {    TreeNode root(1);    TreeNode node2(2);    TreeNode node3(3);    TreeNode node4(4);    TreeNode node5(5);    root.left = &node2;    root.right = &node3;    node3.left = &node4;    node4.right = &node5;    Solution s;    for (auto i : s.preorderTraversal(&root))        cout << i << " ";    cout << endl;     return 0;}
阅读全文
0 0
原创粉丝点击