直接上代码:
先序遍历-循环形式, 结果保存到 vector<int> data中
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
};
//先序遍历
void preTravel(TreeNode* root, vetcor<int>& data)
{
TreeNode* pNode = root;
stack<TreeNode*> s;
while(pNode != NULL)
{
while(pNode != NULL)
{
s.push(pNode);
arr.push_back(pNode->val);
pNode = pNode->left;
}
while(pNode==NULL && !s.empty())
{
TreeNode* pt = s.top();
pNode = pt->right;
s.pop();
}
}
}
//其它遍历方式, 未完待续。。。