Given a binary tree, return the preorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3},
1
\
2
/
3
return [1,2,3].
Note: Recursive solution is trivial, could you do it iteratively?
class Solution {
public:
vector<int> preorderTraversal(TreeNode *root)
{
vector<int> vecNode;
stack<TreeNode* > sNode;
TreeNode* temp = root;
while (0 != temp || !sNode.empty())
{
if (0 != temp)
{
vecNode.push_back(temp->val);
if (0 != temp->right)
sNode.push(temp->right);
temp = temp->left;
}
else
{
temp = sNode.top();
sNode.pop();
}
}
return vecNode;
}
};
本文介绍了一种不使用递归的方法来完成二叉树节点值的前序遍历。通过运用栈的数据结构,该算法有效地实现了对二叉树节点值的前序遍历,并提供了一个具体的C++实现示例。
1106

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



