LeetCode 144. Binary Tree Preorder Traversal

// Given a binary tree, return the preOrder traversal of its nodes' value
// The main idea here is to use stack, nothing special

vector<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);
    }
}

你可能感兴趣的:(LeetCode 144. Binary Tree Preorder Traversal)