Leetcode: binary-tree-preorder-traversal
Given a binarytree, return the preorder traversal of itsnodes' values.
思路:运用栈,根->左->右,先遍历左,那就需要先把右节点入栈,再将左节点入栈,这样出棧的时候,才能左节点先出,后出右节点。
代码如下:
vector<int> preorderTraversal(TreeNode *root) {
vector<int> res;
stack<TreeNode *> node_stack;
if(root!=NULL)
{
node_stack.push(root);
while(!node_stack.empty())
{
TreeNode *temp = node_stack.top();
node_stack.pop();
res.push_back(temp->val);
if(temp->right)
node_stack.push(temp->right);
if(temp->left)
node_stack.push(temp->left);
}
}
return res;
}