(1)前序
vector<int> v;
if(root==nullptr)
return v;
stack<TreeNode*> s;
TreeNode* cur=root;
while(cur || !s.empty())
{
while(cur)//左路节点入栈,并访问
{
v.push_back(cur->val);
s.push(cur);
cur=cur->left;
}
TreeNode* top=s.top();
cur=top->right;//栈顶右子树赋给cur,模拟递归
}
return v;
(2)中序
vector<int> inorderTraversal(TreeNode* root) {
vector<int> v;
if(root==nullptr)
return v;
TreeNode* cur=root;
stack<TreeNode*> s;
while(cur || !s.empty())
{
while(cur)//左路节点入栈,但是不访问
{
s.push(cur);
c