https://leetcode-cn.com/problems/binary-tree-preorder-traversal/
这道题的目的是让我们输出二叉树的前序遍历
前序遍历,即根据 中 左 右 的顺序输出二叉树的结点
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
stack<TreeNode*>st;//创建一个栈来遍历二叉树
vector<int>result;//存储前序遍历
st.push(root);
while(!st.empty())
{
TreeNode*node=st.top();//从中节点开始遍历
st.pop();
if(node!=nullptr)result.push_back(node->val);//将当前的值输入队列
else continue;//如果为空,即无下一级,则返回上一级
st.push(node->right);//先输入右子树,这样输出是就是 中 左 右了
st.push(node->left);
}
return result;
}
};