LeetCode之Binary Tree Preorder Traversal

来源:互联网 发布:js 鼠标点击后div移动 编辑:程序博客网 时间:2024/05/16 05:22
 /*方法一:递归前序遍历。*/class Solution {public:    vector<int> preorderTraversal(TreeNode* root) {        vector<int> res;        preorder(root, res);        return res;    }        void preorder(TreeNode *root, vector<int> &res){        if(root == nullptr) return;        res.push_back(root->val);        if(root->left) preorder(root->left, res);        if(root->right) preorder(root->right, res);    }}; /*方法二:利用栈,采用迭代进行前序遍历。*/class Solution {public:    vector<int> preorderTraversal(TreeNode* root) {vector<int> res;stack<TreeNode*> s;s.push(root);while(!s.empty()){TreeNode *p = s.top();s.pop();if(p != nullptr){res.push_back(p->val);if(p->right != nullptr) s.push(p->right);if(p->left != nullptr) s.push(p->left);}}return res;    }};

0 0