您的位置:首页 > 其它

LC144 Binary Tree Preorder Traversal

2016-07-28 09:18 369 查看
递归前序遍历比较简单,非递归则需要用栈来设计遍历方法。

注意有栈为空但还未遍历完整棵树的情况,因此判断条件需要判断tmp是否为NULL

class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
if(root==NULL)
return result;
stack<TreeNode*> is;
TreeNode* tmp=root;
while(!is.empty()||tmp!=NULL)
{
if(tmp!=NULL)
{
is.push(tmp);
result.push_back(tmp->val);
tmp=is.top()->left;
}
else if(tmp==NULL)
{
tmp=is.top()->right;
is.pop();
}
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: