LeetCode 144. Binary Tree Preorder Traversal

来源:互联网 发布:jquery get json数据 编辑:程序博客网 时间:2024/05/21 18:33
// Given a binary tree, return the preOrder traversal of its nodes' value// The main idea here is to use stack, nothing specialvector<int> preorderTraversal(TreeNode* root) {    vector<int> result;    if(!root) return result;    stack<TreeNode*> nodes;    nodes.push(root);    while(!nodes.empty()) {        TreeNode* tmp = nodes.top();        nodes.pop();                     // remember to pop it out.        result.push_back(tmp->val);        if(tmp->right != NULL)            nodes.push(tmp->right);        if(tmp->left != NULL)            nodes.push(tmp->left);    }}


Preorder iterator

class PreorderIterator {private:  stack<TreeNode*> nodes;public:  void preorderIterator(TreeNode* root) {    nodes.push_back(root);  }  void hasNext() {    return !nodes.empty();  }  void getNext() {    if(hasNext()) {      TreeNode* top = nodes.top();      if(top->right) nodes.push_back(top->right);      if(top->left) nodes.push_back(top->left);      nodes.pop();    }  }}



0 0
原创粉丝点击