前序
1、利用一个栈,先把根节点放进去
2、直接取出来,栈顶节点进行操作
3、如果栈顶节点的右子树存在的话,入栈
4、如果栈顶节点的左子树存在的话,入栈
5、重复2、3、4步骤
参考代码
vector<int> preorderTraversal(TreeNode* root) {
vector<int>output;
if(root == nullptr) return output;
stack<TreeNode*>s;
s.push(root);
while(!s.empty()){
TreeNode* node = s.top();
s.pop();