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;
}
二叉树先序遍历
本文介绍了一种使用栈实现二叉树先序遍历的方法,并提供了详细的代码示例。通过该方法可以有效地遍历二叉树并按先序方式获取节点值。
378

被折叠的 条评论
为什么被折叠?



