题目:
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]
.
(1)算法思想:
借助栈,采用非递归算法:先走到最左,再往右。
(2)代码如下:
class Solution {
public:
vector
preorderTraversal(TreeNode *root) {
if(!root)return vector
();
vector
vec;
stack
s;
TreeNode *node=root;
while(node||!s.empty()){
while(node){
s.push(node);
vec.push_back(node->val);
node=node->left;
}
node=s.top();
s.pop();
node=node->right;
}
return vec;
}
};