144.binary-tree-preorder-travers

2020-05-10  本文已影响0人  Optimization

迭代算法,用到了栈

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        if(root == nullptr)
            return {};
        vector<int> ans;
        stack<TreeNode*> s;
        TreeNode* curNode = root;
        s.push(root);
        while(!s.empty()){
          TreeNode* n =  s.top();s.pop();
          ans.push_back(n->val);
          if(n->right != nullptr) s.push(n->right);
          if(n->left != nullptr) s.push(n->left);
        }
        return ans;
    }


};
上一篇下一篇

猜你喜欢

热点阅读