題目
Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,2,3]
.
Note: Recursive solution is trivial, could you do it iteratively?
解題思路
代碼實現
vector<int> preorderTraversal(TreeNode *root) {
vector<int> ret;
if (root == NULL)
return ret;
std::stack<TreeNode *> s;
s.push(root);
TreeNode *pNode = NULL;
while (!s.empty()) {
pNode = s.top();
s.pop();
ret.push_back(pNode->val);
if (pNode->right != NULL) {
s.push(pNode->right);
}
if (pNode->left != NULL) {
s.push(pNode->left);
}
}
return ret;
}
另外,我開通了微信公衆號--分享技術之美,我會不定期的分享一些我學習的東西.