vector<int> tree::preorderTree(treeNode *root)
{
vector<int> result;
stack<treeNode*> tempStack;
treeNode *dummyRootNode = root;//不知道root值是否会被改变 所以用这种方式 要测试一下
if(dummyRootNode)
tempStack.push(dummyRootNode);
while(!tempStack.empty())
{
treeNode *tempNode = tempStack.top();
tempStack.pop();
result.push_back(tempNode->value);
if(tempNode->rchild) tempStack.push(tempNode->rchild);
if(tempNode->lchild) tempStack.push(tempNode->lchild);
}
return result;
}
{
vector<int> result;
stack<treeNode*> tempStack;
treeNode *dummyRootNode = root;//不知道root值是否会被改变 所以用这种方式 要测试一下
if(dummyRootNode)
tempStack.push(dummyRootNode);
while(!tempStack.empty())
{
treeNode *tempNode = tempStack.top();
tempStack.pop();
result.push_back(tempNode->value);
if(tempNode->rchild) tempStack.push(tempNode->rchild);
if(tempNode->lchild) tempStack.push(tempNode->lchild);
}
return result;
}