1.题目链接:144. 二叉树的前序遍历 - 力扣(LeetCode)
2.思路:设置一个栈,外层循环条件为当头节点不为空且栈不为空,内层循环条件为当头节点不为空时,入栈并把值赋给返回数组,再让指针指向它的左孩子,在所有左孩子都入栈完成后,此时出栈,并将指针指向它的右孩子
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
stack<TreeNode*>st;
vector<int>data;
TreeNode*point=root;
while(point||!st.empty())
{
while(point)
{ data.push_back(point->val);
st.push(point);
point=point->left;
}
TreeNode*point1=st.top();
st.pop();
point=point1->right;
}
return data;
}
};