您的位置:首页 > 其它

前序遍历二叉树

2017-10-02 10:59 176 查看
递归

vector<int> preorderTraversal(TreeNode *root) {
vector<int> result;
if(root==NULL)
return result;
PreorderCore(root,result);
return result;
}
void PreorderCore(TreeNode* root,vector<int>& result){
result.push_back(root->val);
if(root->left)
PreorderCore(root->left,result);
if(root->right)
PreorderCore(root->right,result);
}

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